GNU/Linux >> Linux の 問題 >  >> Linux

Linux で変更日に基づいてファイルをコピーする

最初にファイルのリストを一時的に保存し、ループを使用します。

find . -mtime -90 -ls >/tmp/copy.todo.txt

リストが大きすぎない場合は、

で読むことができます。
for f in `cat /tmp/copy.todo.txt`;
do echo $f;
done

注:cat... を囲む引用符はバッククォートで、多くの場合、キーボードの左上隅にあります。

その後、echo コマンドを copy コマンドに置き換えることができます:

for f in `cat /tmp/copy.todo.txt`;
do cp $f /some/directory/
done

特定の日数に戻る以外に、正確な日時を選択することもできます:

cp  `find . -type f -newermt '18 sep 2016 20:05:00'` FOLDER

上記は、2016 年 9 月 18 日 20:05:00 以降に作成されたディレクトリ内のすべてのファイルを FOLDER にコピーします。 (今日の 3 か月前:)

find コマンドの記号に注意してください。 そうではない これ:'

これ、バッククォートです:`

日付の選択はこれで:'

名前にスペース、改行、タブ、またはワイルドカードが含まれるファイルがある場合は、Stéphane Chazelas のソリューションのいずれかを使用できます。 1 つ目は GNU 用で、2 つ目は GNU または一部の BSD 用です:

find . -type f -newermt '18 sep 2016 20:05:00' -exec cp -t FOLDER {} +
find . -type f -newermt '18 sep 2016 20:05:00' -exec sh -c 'cp "[email protected]" FOLDER' sh {} +

このコマンドを使用してください:

for i in `ls -lrt | grep "jul" | awk '{print $9}' `; do cp $i* /some/folder/; done

-exec を使用 find のオプション :

find . -mtime -90 -exec cp {} targetdir \;

-exec find によって返されたすべての結果をコピーします 指定したディレクトリ (targetdir 上記の例では)


Linux
  1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  2. Linuxの検索コマンド

  3. Linux:find を使用して <date> より古いファイルを見つける

  1. Linuxでのアクセス、変更日時に基づいてファイルを検索して並べ替える

  2. Linuxで重複ファイルを見つける方法

  3. Linux – Linuxで現在の日付のファイルを取得しますか?

  1. Linuxでのファイルのコピー

  2. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  3. 隠しファイルを再帰的にコピーする - Linux