在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/