我可以`ls` 目錄中「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... 中的所有文件嗎?

我可以`ls` 目錄中「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... 中的所有文件嗎?

我有一個目錄,其中包含名為「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... 的文件。

我可以按照「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... 的順序列出它們嗎?

我努力了ls -ls。它不會以這種方式列出文件,而是“1”,“10”,“11”,...,“19”,“2”,“20”,“21”,...我猜這樣的功能有時會很有幫助。

答案1

對於 GNU ls(大多數 Linux 發行版上都有),您可以在頁面中使用ls -v, where -v,man

 -v     natural sort of (version) numbers within text

答案2

GNUls -v已經被提及,但對於其他命令,如果您的 shell 是zsh,您可以影響通配符使用通配符擴展的順序。

例如:

printf '%s\n' *(om)

將列出按修改時間排序的檔案m(從最新到最舊),*(Om)以反轉排序順序(從最舊到最新)。

*(n)將對文件進行數字排序。因此,如果您ls不是 GNU ls,您仍然可以這樣做:

ls -fdl -- *(n)

取得按數字排序的清單。

相關內容