Command-Line

有沒有一種等效的方法來記住安裝卷上的目錄,比如 DOS

  • June 4, 2015

不久前,我從純粹的 Windows 環境轉向使用 Windows 和 Mac。

雖然我正在慢慢習慣我的 Mac 並喜歡它,但有一些事情讓我感到沮喪。

其中之一是文件系統上只有 1 個工作目錄。

對於那些只執行過 Unix 的人來說,這可能看起來很奇怪,但請將此作為我在 Windows 上的經驗。

我有 C: (程序)、D: (數據)、E: (CD/DVD) 和 F: & G: (USB 密鑰)。

如果我輸入…

CD /D F:\Dir1\Dir2
CD /D D:\Dir3\Dir4
F:
CD
D:
CD

假設這些都是有效路徑,輸出將是……

F:\Dir1\Dir2
D:\Dir3\Dir4

這表明我可以在“驅動器”之間進行交換,並且可以獲得每個驅動器的最後一個工作目錄。

當您想要將內容從一個驅動器複製到另一個驅動器時,這非常有用,而無需鍵入整個路徑。

您可以轉到目錄,驗證其內容,切換到目標驅動器/目錄,然後啟動複製…

COPY F:*.* D:.

例如。

對於我的 Mac,雖然我可以使用帶有 2 個 Finder 選項卡的 UI,但我仍然希望能夠使用命令行。

是否有一種等效的方法可以讓已掛載的文件系統記住並公開該文件系統上的最後一個工作目錄?

目前它是“完全輸入整個命令”的方法。

您的問題是關於 bash 的功能,這可能是您用作命令行的 shell。

對於切換部分,您可以使用cd -切換回上一個目錄。

如果你想在命令中引用之前的目錄,你可以$OLDPWD這樣使用:

cp $OLDPWD/* .

也看看help pushdhelp popd一般man bash

您應該知道,Windows 方式(實際上是 DOS 方式)是硬映射A:到由字元( 、C:等)表示的那些低級“設備”的結果。

Unix(基本上)只有一個目錄樹,您可以比在 DOS 上更統一地訪問它。您有多種訪問文件系統的可能性。您可能從 DOS 世界中知道的一種是圖形化的、面向視窗的;例如,請參閱xfe一位候選人。另一種更“本機”的訪問是通過 shell。各種外殼具有不同的功能。您可能希望(用於大量互動使用)查看一下tcsh,但在常用的 POSIX shell(、、、bash)中kshzsh您確實有工作目錄的概念。您可以在目錄之間導航,cd並且特定變體是cd -切換到上一個。從一個目錄中,您可以使用預定義的 shell 變數訪問前一個目錄$OLDPWD或相應的波浪號表達式 ~-(類似於上面提到的cd -)。有了這些,你可以說,cp ./* ~-. ksh還有一個更強大的功能,cd可以輕鬆地在不同版本樹的各自相同子目錄之間跳轉;例如,cd gawk-3.1.6 gawk-4.1.2從這些變體的任何子目錄內跳轉到相應的另一個。在某些 shell 中,還有兩個命令pushdpopd可用命令(本機或通過庫)來記憶您想要重新訪問的目錄。然後是 的概念CDPATH,允許您在不完全指定完整路徑的情況下跳轉到常用目錄。- 我寫了關於更改目錄的所有內容,因為它是充分利用$OLDPWDor resp 的基礎。~-我之前在你的shell命令中提到過。如果沒有提到命令和路徑完成功能,描述將不完整;通常,Tab您可以使用密鑰完成命令,因此即使您明確“編寫”路徑,shell 也會幫助您快速完成。最後但並非最不重要的是shell歷史;您可以訪問以前鍵入的命令,可以根據需要編輯和/或重新呼叫它們。

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