Considere este script.
#! /usr/bin/env bash
mkdir -p target
mkdir -p mydir/package/
touch mydir/package/file
ln --symbolic mydir mylink
file mylink
stow --verbose --dir=./mylink --target=./target package
file target/file
A saída é
mylink: symbolic link to mydir
LINK: file => ../mydir/package/file
target/file: symbolic link to ../mydir/package/file
Antes de executar stow
, é assim:
.
├── mydir
│ └── package
│ └── file
├── mylink -> mydir
└── target
Depois de executar stow
, em mylink
, esperava que fosse assim:
.
├── mydir
│ └── package
│ └── file
├── mylink -> mydir
└── target
└── file -> ../mylink/package/file
No entanto, em vez disso, é assim:
.
├── mydir
│ └── package
│ └── file
├── mylink -> mydir
└── target
└── file -> ../mydir/package/file
Parece que o comando stow
resolve o caminho real do diretório do pacote, então, em vez de apontar para ../mylink/package/file
, ele aponta para ../mydir/package/file
.
Isso faz sentido evitar muito indireto, mas isso acontece silenciosamente e pode nem sempre ser desejável. Existe uma maneira de contornar esse comportamento?