cp -uが実際にファイルをコピーしたかどうかを確認する方法は?

cp -uが実際にファイルをコピーしたかどうかを確認する方法は?

.dllを使用してファイルが作成されたことを確認するためのきちんとした方法を探していますcp -u

かなり多くのファイルを更新する小さなシェルスクリプトがあります。現在のスクリプトは、コピーさechoれるファイルごとに小さなメッセージを提供します。

echoこれで、ファイルが実際に更新されたときにのみ実行されるようにスクリプトを変更したいと思います。cp -uファイルがコピーされない場合は、エラーコードが返されたことを確認しましたが、コピーされません。

ファイルタイムスタンプを手動で比較するよりも良い方法はありますか?

ベストアンサー1

if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi

修正する

cpの詳細出力で"->"と一致します。これは、コピーが成功し、ファイル名に「->」が含まれていない場合にのみ発生します。

if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi

おすすめ記事