.log
AディレクトリからBディレクトリに拡張子を持つすべてのファイルをコピーする小さなスクリプトを作成したいと思います。だから私のディレクトリAには次のものがあります。
ls :
a.log
b.log
c.log
私が達成したい疑似コードは次のとおりです。
foreach *.log x do :
if [stat -c %s pk_copylogs < 10485760]; then
cp A/x B/x
else
read vANSWER?" >> File x is bigger than 10 MB, would you like to copy it anyway ? Type YES or NO : "
if [ $vANSWER = "YES"]; then
cp A/x B/x
fi
fi
ここで私の主な問題は私のforeach *.log
。
答え1
次の2つのコマンドを使用してこれを実行できます。
find A -name "*.log" -size -10485760c -exec cp {} B/ +
find A -name "*.log" -size +10485760c -exec cp -i {} B/ +
1つ目は10485760より小さいファイルを見つけて無分別にコピーします。 2 番目は、10485760 より大きいファイルを検索し、対話形式でコピーし、各コピーの入力を求めます。
単一のコマンドを使用して必要に応じて実行できるように、これをシェルスクリプトまたは関数に入れます。