Shell

Zsh:以相反順序排列的目錄

  • November 17, 2012

我對如何dirs工作感到有些困惑。文件說:

目錄

不帶參數,列印目錄堆棧的內容。目錄使用命令添加到此堆棧,並使用或命令pushd刪除。cd``popd

**Q1。**我從不使用popdnor pushd,但我注意到它dirs會跟踪我去過的目錄(對我來說,這意味著將目錄cd 添加到堆棧中,而不是刪除)

Q.2在長時間使用 之後,列印一長串目錄是很cd常見的,但是這個列表首先列印最近的目錄,並以最後一個目錄結束,所以如果我有一個長列表,螢幕會滾動,並且dirs我不能輕易看到最新的目錄集(通常是我最感興趣的目錄)。

如何以相反的順序列印目錄列表?

我試過dirs | sort -r了,但這不能正確排序條目,例如我得到

20 /foo20/bar
2  /foo2/bar
19 ...
18
...
16
11
10
1
0

未分類的原件看起來像

1 /foo/bar
2 /foo2/bar
3  ...
..  
9
10
11
..
20
21
..
30

sort預設情況下會根據 ASCII 值進行排序,這不會正確地對具有不同位數的數字進行排序。您可以使用該-n選項告訴它根據前導數值進行排序。

dirs -v | sort -nr

或者,由於 的輸出dirs已經排序,但您只想將其轉換為相反的順序,您可以使用以下tac命令(cat相反):

dirs -p | tac

我這樣做cd +,然後點擊Tab查看並瀏覽最近訪問過的目錄列表,最新的目錄位於頂部。

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