复制具有给定时间戳的文件的命令

Vas*_*n63 6 grep xargs awk regular-expression cat

我们需要一个命令将文件从当前目录复制到另一个给定日期的目录。

-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'
Run Code Online (Sandbox Code Playgroud)

例如,命令应该将所有带有“set 12”时间戳的文件复制到 directory /home/12thsep/

有任何想法吗?

Fel*_*xJN 8

您可以通过日期选项进行选择 find

find . -maxdepth 1 -type f -newerat '2019-09-19' ! -newerat '2019-09-20' -exec mv '{}' /home/12thsep \;
Run Code Online (Sandbox Code Playgroud)


bin*_*rym 6

您可以使用find正确的mtime参数。例如:

mkdir <dest_path> && find <source path> -mtime -X -a -mtime +Y -exec mv {} <dest_path>/ \;
Run Code Online (Sandbox Code Playgroud)

其中 X 代表“后天”,Y 代表“前天”。请注意-ato 的find使用在指定的两个条件之间使用 AND。有关要使用的语法的更多详细信息,请参阅find 联机帮助页


小智 5

它可以通过以下方式完成:

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

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

xargs -a logxa01.txt cp -p -t /home/12thsep/
Run Code Online (Sandbox Code Playgroud)