我想链接(ln -s)的所有文件在 /mnt/usr/lib/到 /usr/lib/
ln -s
/mnt/usr/lib/
/usr/lib/
有很多文件,怎样才能快速完成? :)
ln -s /mnt/usr/lib/* /usr/lib/
我猜,这是超级用户的。
发布的解决方案不会链接任何隐藏文件:
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中) ,您可以这样做:
/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
GNUcp有一个创建符号链接而不是复制的选项。
cp
cp -rs /mnt/usr/lib /usr/
注意,这是一个没有找到 在 POSIX cp的 GNU 扩展。