在 Bash 中使用 for 循环创建大量符号链接

在 Bash 中使用 for 循环创建大量符号链接

我只是想知道是否可以使用 for 循环创建大量符号链接?

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

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

这是我所做的,但不幸的是,根本没有起作用:

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

所以如果有人能给我一点提示,那就太好了;-)谢谢。

答案1

尝试这个。

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

答案2

下面的块将按照您的解释创建链接。

如果您想要从 /tmp 中过滤掉一些名称;请使用-name开关进行查找。

如果你想要更大的深度符号链接调整/删除-maxdepth开关

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

要建立这些链接,您需要对 / 具有写权限

答案3

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

这是我的简单解决方案:

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

瞧!

再次感谢 StackExchange 社区 ;-)

答案4

您需要对要创建符号链接的目录具有写入权限。请记住,/tmp 通常会在启动时清理,并且可能会在机器正常运行期间定期清理,因此,依赖 /tmp 中持续存在的内容迟早会让您吃亏。

相关内容