本节书摘来自异步社区《Linux命令行大全》一书中的第2章,第2.4节,作者:【美】William E. Shotts, Jr著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 更改当前工作目录
使用cd命令可以改变工作目录(即在文件系统树的位置);只需输入cd命令,然后再输入目标工作目录的路径名即可。路径名指的是沿着分枝到达目标目录的路由。路径名分为两种:绝对路径名和相对路径名。首先来谈谈绝对路径名。
2.4.1 绝对路径名
绝对路径名从根目录开始,其后紧接着一个又一个文件树分支,直到到达目标目录或文件。例如,系统里有一个目录,大多数系统程序都安装到这个目录里,该目录的路径名是/usr/bin。这就意味着根目录(在路径名中用前导斜杠来表示)中有一个目录是usr,该目录包含一个bin目录。
[me@linuxbox ~]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
[me@linuxbox bin]$ ls
...Listing of many, many files ...
可以看到,我们已经将当前工作目录改变成/usr/bin,bin目录中包含很多文件。请注意shell提示符是如何变化的。为方便起见,工作目录名通常被设置成自动显示。
2.4.2 相对路径名
绝对路径名是从根目录开始,通向目标目录,而相对路径名则是从工作目录开始的。为了实现这个目的,它通常使用一些特殊符号来表示文件系统树中的相对位置,这些特殊符号是“.”(点)和“..”(点点)。
符号“.”代表工作目录,符号“..”代表工作目录的父目录。下面演示它们是如何工作的。让我们再次将工作目录改变成/usr/bin。
[me@linuxbox ~]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
好的,下面来说明一下,我们希望将工作目录改变成/usr/bin的父目录,即/usr。有两种方法可以实现,一种是使用绝对路径名。
[me@linuxbox bin]$ cd /usr
[me@linuxbox usr]$ pwd
/usr
另一种是使用相对路径名。
[me@linuxbox bin]$ cd ..
[me@linuxbox usr]$ pwd
/usr
由于两种不同的方法产生同样的结果。那么我们究竟应该用哪一种方法呢?那就选择输入字符最少的吧。
同样,可以用两种方法将工作目录从/usr变到/usr/bin。我们可以使用绝对路径名。
[me@linuxbox usr]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
我们也可以使用相对路径名。
[me@linuxbox usr]$ cd ./bin
[me@linuxbox bin]$ pwd
/usr/bin
必须在这里指出来的是,几乎在所有的情况下都可以省略“./”,因为它是隐含的。输入以下代码。
[me@linuxbox usr]$ cd bin
该代码与使用相对路径名的代码具有相同效果。一般而言,如果没有指定路径名,则默认为工作目录。
2.4.3 一些有用的快捷方式
表2-1列出了一些可以快速改变当前工作目录的方法。
有关文件名的一些重要说明
以“.”字符开头的文件名是隐藏的。这仅说明ls不会列出这些文件,除非输入ls-a。在创建用户账号时,主目录里会放置一些隐藏文件,用来配置账号信息。仔细观察这样的文件,可以使我们了解如何自定义工作环境。此外,一些应用程序也会将它们的配置文件和设置文件以隐藏文件的形式放在主目录下面。
与UNIX一样,在Linux中,文件名与命令是区分大小写的。文件名File1和file1指向不同的文件。
与其他一些操作系统一样,Linux没有文件扩展名的概念。我们可以按照自己的喜好随意给文件命名。文件的内容或用途由其他方式来决定。尽管类UNIX操作系统不使用文件扩展名来决定文件内容或用途,但是一些应用程序却这么做了。
Linux支持长文件名,文件名可能包含了嵌入的空格和标点符号。但是在创建文件名的过程中,仅句号、连字符和下划线是可以使用的。更为重要的是,文件名中不要嵌入空格。文件名中嵌入空格会使很多命令行任务的实现变得困难,在第7章中我们就会发现这个问题。如果想要表示文件名词语间的空格,可以使用下划线,以后我们就会知道这样的好处了。