在4.2章中咱們已經會用cd進入到指定的目錄中。這是導航最多見的用途之一,可是它還有幾個值得關注的用途。第一個是使用cd ..
(讀做'see-dee 點點')返回當前目錄級別的上一級:linux
$ pwd /Users/mhartl/text_files $ cd .. $ pwd /Users/mhartl
在這種狀況下,因爲/Users/mhartl是個人home目錄,能夠直接使用cd直接回到home目錄:正則表達式
$ cd text_files/ $ pwd /Users/mhartl/text_files $ cd $ pwd /Users/mhartl
直接使用cd本事就能成的緣由是它將目錄改變至用戶home目錄。這意味着:ruby
$ cd
和工具
$ cd ~
是相等的。ui
當改變目錄時,有時指定home目錄頗有用。例如,假設咱們建立了第二個目錄並進入到這個目錄中:google
$ pwd /Users/mhartl $ mkdir second_directory $ cd second_directory/
如今若是咱們想要到text_files目錄中,可使用經過home目錄~結合text_files用cd進入:命令行
$ pwd /Users/mhartl/second_directory $ cd ~/text_files $ pwd /Users/mhartl/text_files
另外,咱們學到這裏能夠理解在插圖6中的提示:我將個人提示配置成顯示當前的目錄,可能顯示成[~], [ruby], [projects]。(咱們將在Learn Enough Text Editor to Be Dangerous中討論如何自定義提示。對於特別有求知慾望(或是等不及)的讀者能夠自行google怎麼鍛鍊他們的技術精湛度(Box5)).code
和返回上一級(..)類似地是 . (讀做點)指的是當前目錄。對'.'最經常使用的場景是移動或複製當前目錄的文件:部署
$ pwd /Users/mhartl/text_files $ cd ~/second_directory $ ls $ cp ~/text_files/sonnets.txt . $ ls sonnets.txt
注意第一次使用ls時什麼都沒返回, 由於最初的second_directory是空的。get
另外一個經常使用'.'的場景是與find命令結合使用,這就像grep很是很是有用,但在我本身的使用場景中99%都是像下面這樣使用:
$ cd $ find . -name '*.txt' ./text_files/sonnet_1.txt ./text_files/sonnet_1_reversed.txt ./text_files/sonnets.txt
用文字描述就是, 這些命令會找到名字匹配正則表達式'*.txt'的文件,從當前目錄.開始而後是它的子目錄。‘find’工具集對於在命令行中尋找一個隨意放置的文件特別有用。
也許我最喜歡使用.的場景是'open 點', 這隻在macOS系統上能使用:
$ cd ~/ruby/projects $ open .
這個非凡的open命令將打開它的參數使用打開指定的文件或目錄的默認程序。(xdg-open與這個命令類似,在一些linux系統上能正常使用)。例如open foo.pdf
會用默認預覽器打開pdf文件(在大多數的Macs上是Preview).在使用目錄的場景如'.'時,默認程序是Finder,因此調用open .
的結果就像插圖20所展現的那樣。
一個最後導航相關的命令,是我我的十分喜好的命令是cd -
,這會進入到以前的目錄:
$ pwd /Users/mhartl/second_directory $ cd ~/text_files $ pwd /Users/mhartl/text_files $ cd - /Users/mhartl/second_directory
我發現'cd -'當結合一些命令時十分有用,正如Box12 中所描述的那樣。
Box 12. 結合命令
在命令行中結合命令一般很是方便,正如使用Unix程序 configure和make時安裝軟件,這一般會像下面這樣顯示:
$ ./configure ; make ; make install
這行命令在當前目錄'.'運行configure程序,而後同時運行make和make install。(你並不須要理解這些程序是作什麼的,並且實際上它們不會再你的系統上工做,除非你剛好在這樣安裝的程序目錄中。)因爲他們是被分號分隔,三個命令會同時一塊兒運行。結合命令更好的方式是使用雙&符號 &&:
$ ./configure && make && make install兩個命令間的卻別在於用&&符號分隔開的命令只有在前一個命令執行成功後纔會執行。相反,使用';'全部命令不管如何都會一塊兒執行,在像下步命令會依賴於前個命令的場景中會報錯。
我特別喜歡將cd -和&&結合使用,這能夠幫我作下面的事情:
$ build_article && cd ~/tau && deploy && cd -
再說一次,你不須要理解這些命令,可是這一般是在一個目錄中建立一篇文章的好主意, cd進入一個不一樣的目錄,再部署(也許是個網址)到生產環境,而後再cd 返回(cd -)到原始的目錄,繼續咱們的工做。固然,若是須要,咱們可使用上箭頭(在Box9中的有用方法)找到整個命令,並再作一遍。
~/text_files
, 那就使用../text_files或者/Users/