GNUly:
find . -lname '/foo*' -printf '%pfind . -lname '/foo*' -printf '%lfind . -lname '/foo*' -print0 |
tar --null -T - -cf - --transform='s@^/foo@/bar@' |
tar xpf -
%pfind . -lname '/foo*' -printf '%pfind . -lname '/foo*' -printf '%lfind . -lname '/foo*' -print0 |
tar --null -T - -cf - --transform='s@^/foo@/bar@' |
tar xpf -
%p%pre%' |
sed -z 's|^/foo|/bar|;n' |
xargs -r0n2 ln -sfT
%l%pre%' |
awk -vRS='%pre%' '
{
getline target
sub("^/foo", "/bar", target)
printf("%s%pre%%s%pre%", target, $0)
}' |
xargs -r0n2 ln -sfT
' |
sed -z 's|^/foo|/bar|;n' |
xargs -r0n2 ln -sfT
%l%pre%' |
awk -vRS='%pre%' '
{
getline target
sub("^/foo", "/bar", target)
printf("%s%pre%%s%pre%", target, $0)
}' |
xargs -r0n2 ln -sfT
Ou com o% GNU sed
:
Cuidado com o fato de você estar potencialmente afetando a propriedade dos links simbólicos (assim, por exemplo, o autor original não poderá mais removê-los se eles estiverem em um diretório que eles não possuam, mas tiverem acesso de gravação a e tem o t
bit set (como /tmp
)).
Para evitar isso, você pode usar o GNU tar
: