Bash
linux中ls命令的替代方法是什麼?
如何在不使用 ls 命令的情況下列出目前目錄或任何目錄路徑內容?我們可以使用 echo 命令嗎?
printf '%s\n' *
作為一個 shell 命令將列出目前目錄中的非隱藏文件,每行一個。如果沒有非隱藏文件,它將
*
單獨顯示,除非在那些已修復該問題的 shell(csh、tcsh、fish、zsh、bash -O failglob)中。echo *
將列出由空格字元分隔的非隱藏文件,除非(取決於 shell/echo 實現)當第一個文件名以反斜杠字元開頭
-
或文件名包含反斜杠字元時。需要注意的是,
*
在將其傳遞給命令之前,shell 會將其擴展為文件列表。您可以在這裡使用任何命令,例如head -- *
顯示前幾行(使用那些head
接受多個文件的實現),stat -- *
…我要包含隱藏文件:
printf '%s\n' .* *
(取決於外殼,這也將包括
.
and..
)。與zsh
:printf '%s\n' *(D)
在可以列出目錄內容的其他應用程序(除了 shell glob 和
ls
)中,還有find
:find . ! -name . -prune
.
(包括除和之外的隱藏文件..
)。在 Linux 上,
lsattr
(列出 Linux 擴展文件屬性):lsattr lsattr -a # to include hidden files like with ls