Ls

列出與文件名中給定字元串不匹配的文件

  • August 22, 2018

我有一個目錄,其中創建了許多同名的文件(大約 200 個)以及temp_log.$$我需要檢查的其他幾個重要文件。

如何輕鬆列出所有文件並排除temp_log.$$文件顯示?

預期產出

$ ls -lrt <exclude-filename-part>
-- Lists files not matching the above given string

我瀏覽了ls手冊頁,但在此參考資料中找不到任何內容。如果我在這裡遺漏了任何重要資訊,請告訴我。

謝謝

使用 GNU ls(非嵌入式 Linux 和 Cygwin 上的版本,有時也可以在其他地方找到),您可以在列出目錄時排除一些文件。

ls -I 'temp_log.*' -lrt

-I(注意is的長形式--ignore='temp_log.*'

使用 zsh,您可以讓 shell 進行過濾。傳遞給以-d避免ls列出匹配目錄的內容。

setopt extended_glob          # put this in your .zshrc
ls -dltr ^temp_log.*

通過 ksh、bash 或 zsh,您可以使用 ksh 過濾語法。在 zsh 中,setopt ksh_glob先執行。在 bash 中,shopt -s extglob首先執行。

ls -dltr !(temp_log.*)

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