我试图根据文件的修改日期复制文件,因为文件名中不包含日期。巧合的是,这些文件是目录中最新的 22 个文件,所以如果我运行命令ls -lt | head -22
,输出的文件正是我要复制的文件。
我读过这个线程在这里,但接受的答案似乎在终端中不起作用,并且它并不完全按日期过滤,只是按头过滤。
我运行的是 macOS Sierra 10.12.5。
答案1
完成此类任务的方法是使用寻找:
find ./dir -mtime -10 -type f -exec cp {} ./another_dir/ \;
-mtime -10
将(过去 10 天)替换为您期望的内容。
请不要解析ls
输出。查看http://mywiki.wooledge.org/ParsingLs
答案2
$ cp `ls -1t | head -22` /destination/dir