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 /