任何想法如何刪除我的舊文件之間的月份,直到哪個月,這是使用Linux命令?如何刪除舊月之間的月份?
例如我想要做的是:
rm oldfile.txt april until may 2012
不知道如何解決我的問題?
感謝
任何想法如何刪除我的舊文件之間的月份,直到哪個月,這是使用Linux命令?如何刪除舊月之間的月份?
例如我想要做的是:
rm oldfile.txt april until may 2012
不知道如何解決我的問題?
感謝
三個步驟,使用find
:
touch -d '2012-04-01 00:00:00' STARTING
touch -d '2012-04-30 23:59:59' STOPPING
find . -type f -newer STARTING -not -newer STOPPING -exec rm {} \;
編輯:請注意,這將刪除四月和五月之間的文件。因此2012年4月1日至2012年4月30日之間的文件將被刪除。另外,在實際刪除文件之前查看要刪除的文件列表是個不錯的主意。爲此,請將rm
更改爲ls -la
。
謝謝,它工作得很好 – Oscar 2012-07-30 04:01:54
AWK可以幫助您在日期顯示文件,也是他們的最後修改時間刪除單月的文件(或一組個月)
ls -l | awk '{if ($6=="Apr" || $6=="Mai") print $9}' | xargs rm
可以啓動你可以很容易地認識到使用stat
:
$ stat -c '%n %z' foo bar
2012-02-25 23:39:31.000000000 +0000 foo
2012-02-25 23:43:35.000000000 +0000 bar
與grep
結合這可以過濾列表,從而你想要的月份:
$ stat -c '%n %z' foo bar | grep -E '^2012-0[45]-.. '
這應該給你進行了修改,四月和2012年則可之間的文件你要只提取文件名(第四場起)使用cut
刪除:
$ stat -c '%n %z' foo bar | grep -E '^2012-0[45]-.. ' | cut -f 4- -d' '
一旦你滿意的輸出,然後刪除它們像這樣(這是無法挽回的地步,所以把你的安全帶在:):
$ !! | while read filename; do rm -f "$filename"; done
注意:!!
表示法重複了最後一個命令,因此您不必再次輸入。在這種情況下,它會在最後一次切割時重複stat命令。
「linux編碼」如在bash中? – 2012-07-30 01:35:24
我用putty來訪問服務器,實際上是linux命令 – Oscar 2012-07-30 01:52:24
提示:'man find'。 – jweyrich 2012-07-30 01:58:43