Tente isso.
cd /tmp && for i in 'ls '; do ln -s $i /$i; done
Eu apenas estou me perguntando se seria possível criar uma quantidade massiva de links simbólicos usando um loop for?
Por exemplo, eu tenho um monte de diretórios no meu diretório / tmp (eu sei, não recomendo) e eu não quero movê-los para fora.
Em vez disso, eu só quero tê-los no meu diretório raiz usando links simbólicos.
Aqui está o que eu fiz, mas, infelizmente, não funciona de forma alguma:
for directories in /tmp/; do ln -s /tmp/$directories /$directories; done
Então, se alguém pudesse me dar uma dica, seria maravilhoso ;-) Obrigado.
O bloco a seguir criará links conforme explicado.
Se você quiser filtrar alguns nomes de / tmp; use o interruptor -name
para encontrar.
Se você quiser maior profundidade, ajuste / remova -maxdepth
switch
cd /
find /tmp/ -maxdepth 1 -type d -exec ln -s {} \;
Para criar esses links, você precisa de permissões de gravação em /
Ok, então, trabalho feito graças a todos por suas dicas.
Aqui está minha solução simples:
for i in $(ls); do dir=$i; ln -s /tmp/$dir /$dir; done
Et voila: D
Obrigado, comunidade do StackExchange mais uma vez; -)
for directories in 'find /tmp/ -type d'
do
ln -s /tmp/$directories /$directories;
done
Você precisa ter permissões de gravação no diretório em que deseja que o link simbólico seja criado. Tenha em mente que o / tmp é (normalmente) limpo na inicialização e pode ser limpo periodicamente durante o tempo de funcionamento da máquina, então confiar em coisas que persistem em / tmp o incomodará, mais cedo ou mais tarde.
Tags bash symbolic-link linux