for d in ./*/ ; do (cd "$d" && cp -R ../lib . ); done
私はこれをシェルスクリプトで使用して、親ディレクトリ内のすべてのサブフォルダにあるlibフォルダをコピーします。ただし、libフォルダもlibにコピーされます。この状況を避ける方法は?
ベストアンサー1
いいえextglob
:
for d in */ ; do
if [ "$d" != "lib/" ]; then
cp -R lib "$d"
fi
done
または事後に削除してください...(もちろん、lib/lib
辞書に存在しない以上!)
for d in */; do cp -R lib "$d"; done
rm -r lib/lib
(GNU cpがそう言うのは少し面白いですが、cp: cannot copy a directory, 'lib', into itself, 'lib/lib'
とにかくそうします。)