Eu tenho uma árvore de diretórios que possui vários links simbólicos para arquivos em /home
... no entanto, mudei /home
para /mnt/home
e preciso de uma maneira de "vincular novamente" todos os links simbólicos. Existe tal funcionalidade ou preciso escrever um script para fazer isso?
Como exemplo, eu tenho algo como o seguinte:
[root@trees ~]# ls -l /mnt/home/someone/something
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/e
/mnt/home/someone/something/subdir:
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/subdir/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/subdir/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/subdir/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/subdir/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/subdir/e
Eu quero um comando que encontre todos os links simbólicos e vincule novamente aos mesmos lugares, mas por baixo, em /mnt/home
vez de/home
Existe um comando desse tipo?
fonte
/mnt
um caminho; você não precisa de operação mais sofisticada que a concatenação.Eu sei que isso não é exatamente o que o autor está solicitando, mas parece que eles já têm sua resposta, então estou adicionando isso a outras pessoas como eu, que tropeçam na pergunta.
O seguinte deve ajudar se for necessária uma solução mais flexível, como ter vários links simbólicos quebrados que podem ser corrigidos substituindo parte dos destinos do link simbólico.
por exemplo. Após uma mudança de nome de usuário, para substituir o nome de usuário antigo pelo novo nome de usuário no destino de muitos links, após a movimentação já ter sido feita. Crie um script chamado replace-simlinks mostrado abaixo:
e chame-o com o seguinte comando:
Espero que isso ajude alguém
edit: Obrigado Gilles pelo kickstart deste script e pela dica sobre o uso do script symlinks para tornar os links relativos.
fonte
target=${target/"/home"/"/mnt/home"}
Muito útil, no entanto. Obrigado.Crie
/home
como um link simbólico para/mnt/home
e todos os links simbólicos existentes serão válidos novamente.fonte