当前位置:C++技术网 > 资讯 > Linux的常用Shell命令新手入门:7 目录操作命令-切换当前工作目录

Linux的常用Shell命令新手入门:7 目录操作命令-切换当前工作目录

更新时间:2016-09-07 10:18:44浏览次数:1+次

切换当前工作目录

cd :change(改变) directory(目录)
语法:cd 带路径的目录名

注:目录名可以带/,也可以不带/
如:cd test/  或者cd test

特殊目录
 . : 一点表示当前目录,在启动程序或脚本时,经常需要加上当前路径,否则会失败,如./my.sh

.. :两点表示父目录,在临近的几层目录中,使用父目录可以快速找到文件并执行。如../../1.sh

/  :至二级一个/表示系统根目录,以/开头的都是绝对路径,也就是从系统根目录开始的路径。

~  :当前登录的用户的目录,如root

相对路径和绝对路径
相对路径:从当前目录开始往下找,寻找的依据就是你给出的路径名(带路径的目录名)
绝对路径:从根目录开始往下找,寻找的依据就是你给出的路径名(带根路径的目录名)

假设当前目录为:/mydata/
相对:test/123/1.txt ,最终系统得知的绝对路径为:/mydata/test/123/1.txt
绝对:/mydata/test/123/1.txt ,直接从根目录找,此时可以不要当前目录来计算目录的位置。

注:只要不是以/开头的,都是相对路径,只要以/开头的,都是绝对路径。很好区分。切换当前工作目录时,既可以使用相对路径目录,也可以用绝对路径目录。一般来说,层次太多的用绝对路径比较方便,层次较少距离当前目录较近的用相对路径比较方便。

切换目录示例
切换到根目录:cd /
切换到当前登录用户目录:cd (不需要跟目录名)
切换到父目录:cd ..  或 cd ../
切换相对目录:cd test/cjjjs
切换绝对目录:cd /data/test/cjjjs

进阶学习

    切换目录就和Windows中打开文件夹的操作是一个性质,所以非常基础而重要。很多程序都会基于某个目录开始工作,如果不事先切换到对应的目录,就会导致程序执行失败。这个在脚本执行的时候,经常碰到,特别是多个shell脚本(.sh后缀结尾的文件)链式执行启动一系列的服务,每一个shell脚本都在对应的工作目录里运行,也就是说,需要在执行前将当前工作目录切换到那个目录。一般会在sh文件的开始切换当前目录。
    当然,不是说一定要切换当前目录后,才可以看到这个目录下的所有内容,我们之前说的ls等命令,可以直接输入一个路径查看对应的目录的内容,而不需要切换当前目录。如:
ls /data/test/cjjjs/
    就可以列出/data/test/cjjjs/的文件。所以,更多的时候,当前工作目录是程序执行的时候需要的。而且,这个当前工作目录是全局的,所以多个shell脚本切换目录会相互影响。因此,在一个shell脚本执行,或者你敲shell命令时,需要先切换一下当前目录为你需要的。