
我有一個目錄,其中包含名為「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)
取得按數字排序的清單。