ファイルが を使用してコピーされたかどうかを確認する簡潔な方法を探しています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