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

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

有很多的文件,如何做到这一点呢? 🙂

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

我想这个属于超级用户。

GNU cp有一个选项来创build符号链接而不是复制。

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

注意这是一个在POSIX cp找不到的GNU扩展。

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

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

如果你碰巧想recursion创build目录并且只链接文件(如果你在一个目录下创build一个文件,它确实在/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 

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