LINUX:将所有文件从一个目录链接到另一个目录

时间:2009-08-28 13:49:34

标签: linux ln

我想链接(ln -s)/ mnt / usr / lib /中的所有文件到/ usr / lib /

有很多文件,如何快速完成? :)

4 个答案:

答案 0 :(得分:185)

ln -s /mnt/usr/lib/* /usr/lib/

我猜,这属于超级用户。

答案 1 :(得分:82)

GNU cp可以选择创建符号链接而不是复制。

cp -rs /mnt/usr/lib /usr/

请注意,这是未找到的GNU扩展程序in POSIX cp

答案 2 :(得分:14)

发布的解决方案不会链接任何隐藏文件。要包含它们,请尝试以下方法:

cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done

如果你碰巧想要递归地创建目录而只想链接文件(这样如果你在一个目录中创建一个文件,它真的在/usr/lib而不是/mnt/usr/lib),你可以做这样:

cd /usr/lib
find /mnt/usr/lib -mindepth 1 -depth -type d -printf "%P\n" | while read dir; do mkdir -p "$dir"; done
find /mnt/usr/lib -type f -printf "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done

答案 3 :(得分:12)

  

ln -s / mnt / usr / lib / * / usr / lib /