Linux

如何在 ls 的輸出之上使用 find 命令

  • August 2, 2020

我有下面的命令顯示文件/目錄有EXEC_EC

命令:

ls -ltr | grep 'EXEC_EC'

通過使用上面的命令:我們可以編寫一個find命令來過濾 7 天之前創建的文件嗎?

我正在嘗試列出具有名稱的文件EXEC_EC並嘗試查找超過 7 天的文件。

樣本輸出

example input: 

dr-xr-xr-x   1 home abc       999 Jun 30 11:12 EXEC_EC_ABC_1
dr-xr-xr-x   1 home abc       999 Jul 25 12:44 EXEC_EC_ABC_2
dr-xr-xr-x   1 home abc       999 Aug  1 22:10 EXEC_EC_ABC_3
dr-xr-xr-x   1 home abc       999 Aug  2 22:20 Number
dr-xr-xr-x   1 home abc       999 Aug  2 22:20 Number2

i am trying to get below output 

EXEC_EC_ABC_1
EXEC_EC_ABC_2

grep如果您仍然使用,則用於過濾是沒有意義find的。

find . -mindepth 1 -maxdepth 1 -name '*EXEC_EC*' -mtime +7

預設情況下find遍歷整個子樹(即所有子目錄的內容)。-mindepth 1 -maxdepth 1防止這種情況發生,因為該範例僅適用於單個目錄的內容。忽略目錄參數(在這種情況下, , 不是必需的-mindepth 1,但在一般情況下)。防止下降到子目錄。find``.``-maxdepth 1

這就是你要找的東西?

$ find . -name '*EXEC_EC*' -mtime +7 -print

. = 表示您目前的目錄,您可以將其替換為目錄路徑。

-mtime - 表示文件修改時間,用於查找超過 7 天的文件。

引用自:https://unix.stackexchange.com/questions/602532