我想复制本月修改的目录中的所有文件。我可以列出这些文件是这样的:复制本月从命令行修改的所有文件
ls -l * | grep Jul
然后复制他们我是通过xargs
试图管结果为cp
,但没有成功(我认为),因为我无法弄清楚如何解析ls -l
输出到只抓住cp
的文件名。
我确信有很多方法可以做到这一点;我会给正确的答案给那些可以告诉我如何以这种方式解析ls -l
的人(或者从那个位置上谈谈我),尽管我也有兴趣看到其他方法。
谢谢!
我想复制本月修改的目录中的所有文件。我可以列出这些文件是这样的:复制本月从命令行修改的所有文件
ls -l * | grep Jul
然后复制他们我是通过xargs
试图管结果为cp
,但没有成功(我认为),因为我无法弄清楚如何解析ls -l
输出到只抓住cp
的文件名。
我确信有很多方法可以做到这一点;我会给正确的答案给那些可以告诉我如何以这种方式解析ls -l
的人(或者从那个位置上谈谈我),尽管我也有兴趣看到其他方法。
谢谢!
当然,只是在做grep Jul
是不好的,因为你的名字中可能有文件名为Jul
。其实find
可能是你工作的正确工具。事情是这样的:(“”如)
find $DIR -maxdepth 1 -type f -mtime -30 -exec cp {} $DEST/ \;
其中$DIR
是你的文件的目录,$DEST
是目标目录。
的-maxdepth 1
标志意味着它不会看里面子目录的文件(不递归)
的-type f
标志意味着它看起来只在常规文件(例如,不目录)
的-mtime -30
意味着它着眼于与修改时间的文件的更新超过30天(+30将超过30天)
的-exec
标志意味着它执行以下命令上的每个文件,其中{}
被替换的文件名和\;
是命令结束
感谢您的详细解答;说得通。 – ACV
兴趣看看这会如何适用的zsh完成
ls -lt *.*(mM0)
上个月
ls -lt *.*(mM1)
或确切日期日期范围
autoload -U age
ls -tl *.*(e#age 2014/06/07 now#)
ls -tl *.*(e#age 2014/06/01 2014/06/20#)
[不解析ls](http://mywiki.wooledge.org/ParsingLs) –