Ubuntu 16(ターミナル)で誤ってファイルを削除してしまい、photorecを使用して復元しましたが、結果が多すぎてどれが最新かを手動で確認するのは困難です。そこで、次のコマンドを使用します。
find -name "*.c" -print0 | xargs -0 -r grep -lH "Created named pipe" | xargs cp -p -t found/
検索文字列を含むすべてのフォルダ内の.cファイルを検索します。cp -tを使用すると、それらのファイルを別の場所にコピーできます。残念ながら、私が-p (or --preserve=timestamp)
使用しているファイルの日付を指定しましたがls -alt
、今コピーしようとしているファイルの日付ではありません。コピーする元のファイルの日付を確認しましたが、その日付は正しいです(過去の日付です)
コピー中に元のファイルの日付を維持するにはどうすればよいですか?
答え1
コピーしない解決策を見つけましたが、最新のファイルのみをコピーしたいので問題ありません。これで
ls -alt $( find -name "*.c" -print0 | xargs -0 -r grep -lH "Created named pipe" )
必要なことはすべて実行できます。すべてのファイルのタイムスタンプが印刷されます。
ファイルを rm して復元しても、編集日が復元されないこともわかりました。学習は決して終わりません...
とにかく、これが他の人の役に立つかもしれません、ありがとう。