在bash中使用for循环创build大量的符号链接

我只是想知道自己是否可以使用for循环创build大量的符号链接

例如,我在/ tmp目录上有很多目录(我知道,不推荐),我不想将它们移出。

相反,我只想使用符号链接将它们放在我的根目录下。

这是我做的,但不幸的是,根本不工作:

for directories in /tmp/; do ln -s /tmp/$directories /$directories; done 

所以,如果有人能给我一个提示,这将是wonderfull ;-)谢谢。

尝试这个。

 cd /tmp && for i in `ls `; do ln -s $i /$i; done 

以下块将按照您的解释创build链接。

如果你想从/ tmp中过滤掉一些名字, 使用-name开关进行查找。

如果你想更深入的-maxdepth链接调整/删除-maxdepth开关

 cd / find /tmp/ -maxdepth 1 -type d -exec ln -s {} \; 

要制作这些链接,您需要在/

 for directories in `find /tmp/ -type d` do ln -s /tmp/$directories /$directories; done 

您需要对要在其中创build符号链接的目录拥有写入权限。 请记住,/ tmp是(通常)在启动时清理的,并且可以在整个机器的正常运行时间内定期清理,所以依靠/ tmp持久化的东西迟早会咬你的。

好的,工作完成,谢谢大家的提示。

这是我简单的解决scheme:

  for i in $(ls); do dir=$i; ln -s /tmp/$dir /$dir; done 

Et瞧:D

再次感谢StackExchange社区;-)