次の例を考えてみましょう。
touch test0
touch timestamp
touch test1
sudo find /var/www/import -iname 'test*' -newer timestamp -exec cp {} new \;
実際にtest1ファイルをコピーしますが、次のメッセージを返します。
cp: `/var/www/import/new/test1' and `new/test1' are the same file
私は何が間違っていましたか?
2番目の質問です。ファイルを単一の「パッケージ」にコピーするためにこのコマンドに「+」を使用できますか?何千ものファイルがあります!
ベストアンサー1
私は何が間違っていましたか?
それは問題ではありません。find
コピーされたファイルが見つかり、new
再度コピーしようとすると警告メッセージが表示されます。
ファイルが単一の「パッケージ」にコピーされるように、このコマンドに「+」を使用できますか?何千ものファイルがあります!
はい、しかし、次のようにコマンドを変更する必要があります。
find /var/www/import -iname 'test*' -newer timestamp -exec cp -t new {} +
なぜなら{}
、この場合はexecステートメントの最後になければならないからです。