我想複製本月修改的目錄中的所有文件。我可以列出這些文件是這樣的:複製本月從命令行修改的所有文件
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) –