特定の日付のファイルをあるディレクトリから別のディレクトリにコピーしたいと思います。誰でも私に使用するUnixコマンドを提案できますか?
答え1
これを行う最善の方法はコマンドを使用することですfind
。ここには多くの方法があります。そのうちの2つを説明します。
1)相対時間間隔
このアプローチでは、正確な開始と終了のタイムスタンプを指定し、そのmodified/accessed/changed
期間に属していないすべてのファイルをフィルタリングします。これを行うには、コマンドを使用しtouch
て特定の名前でファイルを保存できます。タイムスタンプ。次の例では、に設定された2つのマーカー(および)を
作成します。次に、およびオプションを使用してファイルを選択します。timestamp_begin_file
timestamp_end_file
3 HOURS AGO
1 HOUR AGO
newerct
! newerct
最新それから3時間更新されないchange
それから1時間です(この例では時間だけを見ています)。選択したすべてのファイルが$DESTINATION_PATH
フォルダにコピーされます。
touch -t $(date -d '3 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_begin_file
touch -t $(date -d '1 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_end_file
find "$FOLDER" -newerct timestamp_begin_file ! -newermt timestamp_end_file -exec cp {} $DESTINATION_PATH \;
2)絶対時間間隔newermt
オプションを使用して、特定の日付間隔内に不要なファイルをフィルタリングできます。ここでは、当日変更されたファイルのみを選択してください2007-06-07
。
find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08 -exec cp {} $DESTINATION_PATH \;
私が言ったように、他の多くの選択肢があります(@Jaleksが提案したように-a/m/ctime
、情報が不足しているので、どちらがあなたに適しているかを知る方法はありません)。
詳しくは時間フィルタでfind
、見てくださいマンページを探す
答え2
find
などのパラメータを含むマンページを表示したり、指定された-atime
時間-mtime
に-ctime
アクセス、変更、または変更されたファイルを見つけたり、さらにこの-exec
オプションを使用してそのファイルをコピーしたりできます。