如何刪除 X 天前且以數字結尾的所有文件

如何刪除 X 天前且以數字結尾的所有文件

我們要刪除所有以數字或更多數字結尾的文件,例如2位或3位等等

注意 - 當檔案以數字結尾時,它告訴我們該檔案已旋轉並且實際上以 uniq 數字進行備份

例子

-rw-r--r--  1 kafka hadoop    73668 Aug  5 07:56 controller.log.2018-08-05-07
-rw-r--r--  1 kafka hadoop    73668 Aug  5 08:56 controller.log.2018-08-05-08
-rw-r--r--  1 kafka hadoop   658893 Aug  7 11:53 controller.log.3
-rw-r--r--  1 kafka hadoop     1092 Aug  7 14:35 controller.log.2
-rw-r--r--  1 kafka hadoop  2750003 Aug  7 14:52 state-change.log.2018-08-07-14
-rw-r--r--  1 kafka hadoop     3678 Aug  7 14:52 log-cleaner.log.2018-08-07-14
-rw-r--r--  1 kafka hadoop   199094 Aug  7 14:52 controller.log.2018-08-07-14
-rw-r--r--. 1 kafka hadoop    24431 Aug  7 15:07 kafka.err
-rw-r--r--  1 kafka hadoop     1147 Aug  7 16:02 server.log.10
-rw-r--r--  1 kafka hadoop     1061 Aug  7 16:02 server.log.9
-rw-r--r--  1 kafka hadoop   135465 Aug  7 16:07 server.log.8
-rw-r--r--  1 kafka hadoop    10278 Aug  7 16:07 server.log.7
-rw-r--r--  1 kafka hadoop    10350 Aug  7 16:07 server.log.6
-rw-r--r--  1 kafka hadoop    10353 Aug  7 16:07 server.log.5
-rw-r--r--  1 kafka hadoop    10322 Aug  7 16:07 server.log.4
-rw-r--r--  1 kafka hadoop     1272 Aug  7 16:07 log-cleaner.log
-rw-r--r--  1 kafka hadoop   473322 Aug  7 16:07 controller.log.1
-rw-r--r--  1 kafka hadoop      170 Aug  7 16:07 controller.log

預期成績:

-rw-r--r--. 1 kafka hadoop    24431 Aug  7 15:07 kafka.err
-rw-r--r--  1 kafka hadoop     1272 Aug  7 16:07 log-cleaner.log
-rw-r--r--  1 kafka hadoop      170 Aug  7 16:07 controller.log

我嘗試這個選項,但這個選項不起作用

 find . -type f  -mtime +6   -name '*[0-9]'  -print -delete

請幫我建立正確的語法,

答案1

您需要使用 的-regex參數find

find . -type f  -mtime +6 -regex '^.*[0-9]$' -print -delete

這將匹配並刪除所有以數字結尾的檔案(例如,請注意某些擴展名也可以以數字結尾.mp4)。

另請注意,-mtime不支援浮點數,並且始終四捨五入到第二天。因此,如果您想刪除至少六天前修改過的文件,您可以提供-mtime +5.

答案2

請幫我建立正確的語法。

你用的是什麼:

find . -type f  -mtime +6   -name '*[0-9]'  -print -delete

正確的語法,但有一些注意事項:

  1. -delete不便於攜帶。一般來說,實現find可能支援也可能不支援。便攜式等效項是-exec rm {} \;

  2. -name使用類似 glob 的模式。根據您所在的地區,[0-9]可能或者可能不會正是您想要的意思:它可能匹配來自不同於 ASCII 十進制數字的集合中的字元(例如,它可能匹配

相關內容