Linux
如何在 ls 的輸出之上使用 find 命令
我有下面的命令顯示文件/目錄有
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 天的文件。