/ mnt/usr/lib /にあるすべてのファイルを/ usr/lib /にリンク(ln -s)したい
たくさんのファイルがありますが、どうすれば高速にできますか? :)
ln -s /mnt/usr/lib/* /usr/lib/
ただし、これはスーパーユーザーのものです。
GNU cp
には、コピーする代わりにシンボリックリンクを作成するオプションがあります。
cp -rs /mnt/usr/lib /usr/
これはGNU拡張ではないことに注意してください POSIX cp
で。
投稿されたソリューションは、隠しファイルをリンクしません。それらを含めるには、これを試してください:
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
ln -s /mnt/usr/lib/* /usr/lib/