CLIの日付範囲内のファイルをリストするのに適した人に教えてください。 2月20日から3月2日の間にこのファイルを別のディレクトリに移動するとします。
ありがとう
答え1
(以前のGNUおよびBSDシステム)find
なしで実装する場合:-newerct
find
find
2つのタイムスタンプファイルが作成され、find
最も古いファイルよりも最新のファイルと最新のファイルより古いすべてのファイルを見つけるために使用されます。
touch -d 2018-02-20T00:00:00 ts-start
touch -d 2018-03-03T00:00:00 ts-end
find . -type f -newer ts-start ! -newer ts-end ! -name ts-end -exec mv {} /destination ';'
rm -f ts-start ts-end
ts-end
ファイルが条件を満たすため、ファイル名を除外する必要があります。
答え2
find -newerct "20 Feb 2018" ! -newerct "2 Mar 2018" -exec mv {} /path/to/target/dir
これは、最新バージョンで導入されたGNU検索機能を使用します。
同じことを行う他の方法もたくさんありますfind
。man
その他の特典については、このページをご覧ください。-newerxy
-mtime