web-dev-qa-db-ja.com

指定されたタイムスタンプでファイルをコピーするコマンド

現在のディレクトリから指定された日付の別のディレクトリにファイルをコピーするコマンドが必要です。

-rw-r----- 1 schmidt schmidt 276423 set 03 10:31 'event01.csv'
-rw-r----- 1 schmidt schmidt 283861 set 03 10:34 'event02.csv'
-rw-r----- 1 schmidt schmidt 280644 set 03 10:40 'event03.csv'
-rw-r----- 1 schmidt schmidt 270234 set 03 03:26 'event04.csv'
-rw-r----- 1 schmidt schmidt 293488 set 12 06:43 'event05.csv'
-rw-r----- 1 schmidt schmidt 287417 set 12 07:48 'event06.csv'
-rw-r----- 1 schmidt schmidt 280519 set 12 10:19 'event07.csv'
-rw-r----- 1 schmidt schmidt 279631 set 12 19:43 'event08.csv'
-rw-r----- 1 schmidt schmidt 286578 set 12 15:15 'event09.csv'
-rw-r----- 1 schmidt schmidt 289830 set 12 18:41 'event10.csv'
-rw-r----- 1 schmidt schmidt 305209 set 19 05:58 'event11.csv'
-rw-r----- 1 schmidt schmidt 308275 set 19 06:20 'event12.csv'
-rw-r----- 1 schmidt schmidt 275015 set 19 14:40 'event13.csv'
-rw-r----- 1 schmidt schmidt 310610 set 19 15:40 'event14.csv'
-rw-r----- 1 schmidt schmidt 311466 set 19 15:41 'event15.csv'
-rw-r----- 1 schmidt schmidt 305241 set 19 15:51 'event16.csv'
-rw-r----- 1 schmidt schmidt 291699 set 19 15:56 'event17.csv'

たとえば、コマンドは、タイムスタンプが「set12」のすべてのファイルをディレクトリ/home/12thsep/にコピーする必要があります。

何か案は?

6
Vascon63

findの日付オプションで選択できます

find . -maxdepth 1 -type f -newerat '2019-09-19' ! -newerat '2019-09-20' -exec mv '{}' /home/12thsep \;
8
Fiximan

findを正しいmtime引数とともに使用できます。例えば:

mkdir <dest_path> && find <source path> -mtime -X -a -mtime +Y -exec mv {} <dest_path>/ \;

ここで、Xは「翌日」を表し、Yは「前日」を表します。 -aを使用して、findが指定された2つの条件の間でANDを使用するようにすることに注意してください。使用する構文の詳細については、 マンページを検索 を参照してください。

6
binarym

それは次の方法で行うことができます:

ls -alF|grep "set 12" >> logxa00.txt

cat logxa00.txt| awk '{print $9}' > logxa01.txt

xargs -a logxa01.txt cp -p -t /home/12thsep/
5
Emmett44