CLIを使用して日付別に別のディレクトリにファイルを移動する

CLIを使用して日付別に別のディレクトリにファイルを移動する

古いハードドライブの写真をたくさん集めて整理しようとしています。を実行すると、ls -lこれらすべてのファイルの作成日が2012年以前であることがわかります。理想的には、自動的にインストールするように設定されていないマイコンピュータの2番目のハードドライブに移動したいと思います。好ましくは、いくつかのコマンドを一緒に接続して一括で実行できます。これまで、私はls -l | grep -i 2012提供された2012年の日付のファイルだけを吐き出しましたls -l。今の秘密は、cpこれらすべてのファイルを新しいディレクトリに追加することです。すべてのファイルをコピーする必要があるので、次にどこに行くのかわかりません。次のコマンドセットは何ですか?

ベストアンサー1

使用しないでくださいls。そのような状況では使用しないことをお勧めします。また、grep日付ベースのフィルタリングを使用するのは良い考えではありません。 2012年に変更されていない場合でも、ファイル名自体に2012文字列を含めることができます。

findコマンドを使用して出力をパイプします。

find . -newermt 20120101 -not -newermt 20130101 -print0 | xargs -0 cp -t /your/target/directory 

ここでは、

-newermt 20120101  ==>  File's modified date should be newer than 01 Jan 2012
-not               ==>  reverses the following condition. Hence file should be older than 01 Jan 2013
-print0 and -0     ==>  Use this options so that the command doesn't fail when filenames contain spaces 

おすすめ記事