mvを使用すると、ファイルに時間依存関係を適用できますか?

mvを使用すると、ファイルに時間依存関係を適用できますか?

特定の時間と日付があるとしましょう。その日付より前に最後に編集したすべてのファイルをアーカイブしたいのですが、その日以降に編集されたすべてのファイルは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/dir5日後のすべてのファイルは/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 

(実際に物を動かすには「エコ」を削除してください)

おすすめ記事