Ls如何防止
如何防止ls
對輸出進行排序?
我有一個特定的文件順序,如果它們存在,我想列出它們;大約 40 個文件。某種優先級。所以我嘗試了:
ls -1d /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
如果兩者都存在,我希望首先列出。但實際上它會列印第bar
一個和foo
之後的內容。有沒有辦法
ls
按照參數中給出的順序列出條目?或者一些替代方法
find
?
提到後
find
,我發現它可以採用多於 1 條路徑作為路徑參數。所以很簡單:find /opt/foo/lib.jar /opt/bar/lib.jar -prune 2> /dev/null
使用 GNU
ls
,您可以嘗試以下-U
選項:
-U
: 不排序;按目錄順序列出條目(雖然在這裡,我們沒有列出目錄的內容,所以重要的部分是不排序)。
$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar /opt/foo/lib.jar /opt/bar/lib.jar
更便攜(適用於 GNU 和 FreeBSD
ls
,但不適用於傳統ls
實現,也不是 POSIX),您可以使用ls -1df
:$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar /opt/foo/lib.jar /opt/bar/lib.jar