请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5|回复: 0

Linux切换目录之cd命令

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32176
发表于 2021-2-16 22:05:29 | 显示全部楼层 |阅读模式
  当咱们正在Linux体系上使命时,做得相当众的一项劳动即是正在区别的目次之间实行切换,这时就必要用到cd夂箢了。cd是change directory的首字母缩写,恰是“厘革目次”的趣味。
  当目次切换告成时,cd夂箢返回0;而目次切换失利时,cd夂箢返回非0值。要切换的目次不存正在或者权限不足,都是cd夂箢奉行失利的常睹起因。
  当省略option时,默以为-L选项。这两个选项的详细效用,咱们会正在第2末节中实行周详阐发。
  而dir参数则指明要切换到的目次,cd夂箢最众只可有一个dir参数。dir参数可能省略,此时它的效用相当于cd ~,即切换到方今用户的主目次(又称家目次,即HOME变量界说的旅途)。
  cd夂箢原本很纯粹,而它的运用技能紧要呈现正在对象目次(即dir参数)的展现上。dir参数有如下这些展现伎俩:
  绝对旅途,即从根目次(/)劈头到一个目次的完美旅途。好比cd /var/spool,则是切换到根目次下的var目次中的spool目次。
  相对旅途,不是从根目次劈头也不是下面的额外符号代外的旅途即是相对旅途,它是相对付方今目次而言的。好比cd photo/travel,倘使方今目次是/var/media,那么就相当于切换到/var/media/photo/travel。倘使方今目次是/User/Mike,那么切换对象即是/User/Mike/photo/travel。
  提示,正在旅途展现中可能运用.(一个英词句点)或..(两个英词句点)。个中.展现一个目次自己,好比/var/spool/./at原本就等于/var/spool/at。而..代外一个目次的父目次,好比/var/spool/../log等于/var/log;根目次的父目次是它自己。
  ~(海浪符号),这代外用户的主目次。好比我的主目次是/home/purehiking,那么奉行cd ~就相当于奉行cd /home/purehiking。当省略dir参数时,也等同于奉行cd ~。cd ~/xx则是切换到用户主目次下的其它目次。
  -(英文连字符),这代外上一个使命目次。当你切换到一个新的目次并奉行完了劳动后,思要回到上一个目次时,就可能将dir参数指定为 - 而不消输入上一个目次的绝对或相对旅途。
  -P和-L这两个选项的效用终于是什么呢?原本它们都和符号链接相合。当旅途中的某个目次是另一个目次的符号链接的岁月,-P就运用物理目次组织而-L则运用逻辑目次组织。
  假设/tmp/A这个目次是/var/spool这个目次的符号链接,那么对/tmp/A中的文献实行经管原本即是对/var/spool中的文献实行经管。当用户处于/tmp/A这个目次中时,/tmp/A即是逻辑目次,而/var/spool即是物理目次。
  cd -P /tmp/A/.. 的结果是切换到/var目次,这是由于解析到/tmp/A的岁月呈现它是一个符号链接而咱们又指定了-P选项,这时就运用物理目次。相当于把/tmp/A交换为/var/spool,再解析这个目次的父目次就取得/var目次。
  cd -L /tmp/A/.. 的结果是切换到/tmp目次,这是由于固然解析到/tmp/A是一个符号链接,可是-L选项则指明即是运用逻辑目次。此时的目次仍然/tmp/A,而该目次的父目次即是/tmp。
  咱们前面说相对旅途都是相对付方今目次的,这原本是正在没有成立CDPATH变量时的状况,当然成立了CDPATH变量后也可能让相对旅途相对付方今目次。
  CDPATH变量的效用即是指定一个或众个寻求目次,当cd夂箢的dir参数是相对旅途时,就按次正在CDPATH指定的这些目次中寻求该相对旅途代外的对象目次(原本即是让该相对旅途相对付该寻求目次,而不是相对付方今目次)。寻求到第一个存正在的对象目次时就休止寻求,并切换到该对象目次。倘使全面寻求目次下都没有该相对旅途对应的对象目次,则cd夂箢奉行失利。倘使dir参数是绝对旅途,则不运用CDPATH变量。
  CDPATH变量指定的寻求目次既可能是绝对旅途,也可能是相对旅途。倘使是绝对旅途,就直接将该寻求目次使用于dir参数代外的相对旅途。倘使是相对旅途,那么先让该寻求目次相对付方今目次以确定它的完美旅途,再将该完美旅途使用于dir参数指明的相对旅途。
  当CDPATH指定众个寻求目次时,每个目次之间都用英文冒号(:)隔离。倘使某个寻求目次为空,那么该目次相当于指定方今目次。其余,要指定方今目次,也可能将某个寻求目次指明为.(一个英词句点)。
  开始,决断出dir参数是一个相对旅途且CDPATH变量已成立,那么就要正在该变量指定的寻求目次中寻求该相对旅途。
  取出第一个寻求目次,它是/var/lib。由于该寻求目次是绝对旅途,那么就直接正在它之中实行寻求,原本即是查看/var/lib/httpd/vhosts这个目次是否存正在。咱们的假设中这个目次不存正在,所以就正在后续的寻求目次中赓续寻求。
  取出第二个寻求目次media/video,它是一个相对旅途。所以咱们先让它相对付方今目次以确定该寻求目次的完美旅途,取得的结果是/tmp/media/video(方今目次为/tmp)。再正在该寻求目次中寻求对象目次,即查看/tmp/media/video/httpd/vhosts这个目次是否存正在,然而它照样不存正在。
  取出第三个寻求目次,它是一个空目次,原本也是一个相对旅途。让它相对付方今目次取得寻求目次的完美旅途即是方今目次/tmp。然后查看/tmp/httpd/vhosts是否存正在,结果是它不存正在。
  取出第四个寻求目次,它是/etc。寻求对象目次即是查看/etc/httpd/vhosts是否存正在,由于该目次存正在,那么寻求告成。此时,将使命目次切换到/etc/httpd/vhosts后cd夂箢返回0以展现奉行告成。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表