特定の時間と日付があるとしましょう。その日付より前に最後に編集したすべてのファイルをアーカイブしたいのですが、その日以降に編集されたすべてのファイルはmv
別の場所に保存したいと思います。man
ページにはmv
これが可能であるという事実は直接表示されませんmv
。私は次のいずれかの形式が機能する必要があると思います。
ls -t | head -n $number
$number
指定した時刻と日付以降に編集されたファイル数を指定します。その後、どういうわけかこのファイルmv
にそれを供給することができますmv
(まだ正確に何をするのかを理解できませんでした)。この方法の欠点は、私が指定した日時以降にどれだけのファイルが編集されたかを計算する必要があることです。日付と時刻のみを指定し、mv
どのファイルを編集する必要があるかを自分のコンピュータに自動的に把握させる方法はありますか?mv
そうでない場合は、上記のコマンドを完了してこれらのファイル名を入力してmv
すべてmv
同じ場所に編集するにはどうすればよいですか?
答え1
find /path/to/dir -mtime +5 -exec mv {} /target/path/ ';'
/path/to/dir
5日後のすべてのファイルは/target/pathに移動されます。
実際に機能するものを確認するためにこれを試すことができます。
find /path/to/dir -mtime +5 -exec echo mv {} /target/path/ ';'
この-mtime
パラメーターはファイルの変更時間を確認します。-ctime
見てください。-atime
マンページを探すもっと学ぶ。
時間を分単位で指定するには、とのいずれかを使用します-mmin
。-cmin
-amin
特定の時間より古いファイルを見つけるには、代わりに-
を使用します+
(例:)-mmin -30
。
xargs
別の方法は(各入力ラインでコマンドを実行する)を使用することです。マンページ):
find /path/to/dir -mtime +5|xargs -i echo mv {} /target/path
(実際に物を動かすには「エコ」を削除してください)