133

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

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

4

4 回答 4

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

我想,这属于超级用户,不过。

于 2009-08-28T13:52:55.420 回答
97

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

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

请注意,这是POSIXcp中找不到的 GNU 扩展。

于 2009-08-28T14:04:40.413 回答
21
ln -s /mnt/usr/lib/* /usr/lib/
于 2009-08-28T13:53:14.157 回答
20

发布的解决方案不会链接任何隐藏文件。要包括它们,试试这个:

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
于 2009-08-28T14:00:14.350 回答