实例讲解Linux中cd命令切换目录的使用技巧

cd命令大家再熟悉不过了,bash shell经常会被用到的切换目录命令. 接下来我们直接通过万能的man来了解cd命令.

直接 man cd 是不行的,会显示 No manual entry for cd .cd命令是bash基本命令中的一种,所以应该是 man bash.

关于man以及man page等相关内容会在以后的 LinuxShell命令:man 中详细介绍.
通过查找man page里可以看到cd的命令语法如下

代码如下:

cd [-L|[-P [-e]] [-@]] [dir]

基本作用

cd命令的作用就是从当前目录跳转到dir处, 如果dir处留空的话就会跳转到环境变量HOME中设置的值.

附加内容

环境变量CDPATH
对于环境变量CDPATH,
如果没有设置CDPATH的话,每次cd查找的跳转目录都是以当前的目录为父目录.
若有设置CDPATH的话,每次cd查找的跳转目录就是以设置的目录为父目录来查找.
e.g. 假设当前有目录结构: ~/a/b/c 若没有设置CDPATH

代码如下:

luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd c
bash: cd: c: No such file or directory

若将CDPATH设为CDPATH=.:/home/luckyshq/a/b的话
代码如下:

luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd c
luckyshq@localhost:~/a/b/c$

将常用目录设置到CDPATH里就能有效提高cd的效率.
CDPATH中目录见用:隔开.
若不加上.路径(即当前路径的话),以前默认的本目录作为父目录cd就不可用了.
若dir处是以/开头(即是绝对路径)的话,CDPATH就失效了.

cd -P, -e参数
进入到快捷方式目录的实际目录中. e.g. 假设 ~ 目录下有a,b两个目录, 同时a下有一个连接到b的子目录b(这个b是快捷方式)

代码如下:

// 不加 -P 参数
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd b

luckyshq@localhost:~/a/b$

//加上 -P 参数
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd -P b
luckyshq@localhost:~/b$

若将一个文件夹自己的快捷方式放到文件夹里,这样写脚本的时候就有可能会出现无限循环,当前路径名就会变得无限长,但是加上了-P命令后就可以避免无线循环的情况.
如果在-P后面加上-e的话,若跳转前路径不存在对应物理路径的话(比如说夹杂着多个快捷方式为名称的路径)就会返回一个失败的状态.(-e具体的用法可能要到Shell编程时才能体会到.)

cd -L参数
-L参数和-P相反(两者不能同时出现,即 -L|-P),是跳转到链接目录中,类似于不带参数的cd.(加不加-L具体有什么区别还没弄清=,=)

..
dir中如果出现了..,
若..后有路径,则吞掉路径中第一个目录元素(例如 cd ../a/b/c 等价 cd b/c).
若..后没路径,则退回到当前路径的父目录中.

 

时间: 2024-11-25 03:50:30

实例讲解Linux中cd命令切换目录的使用技巧的相关文章

linux中cd命令使用详解_php实例

Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命令格式: cd [目录名] 2. 命令功能: 切换当前目录至dirName 3. 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [root@localhost ~]# cd /   说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 命令: cd

实例讲解设计模式中的命令模式在iOS App开发中的运用_IOS

命令模式封装一个请求或行为作为一个对象.封装的请求比原的更加灵活,可以在对象之间传递,储存,动态修改,或放入一个队列. 那么让我们简要的说一下命令模式的特点. 它能比较容易地设计一个命令队列: 在需要的情况下,可以较容易地将命令记入日志: 允许接收请求地一方决定是否要否决请求: 可以容易地实现对请求地撤销和重做: 由于加进新地具体命令类不影响其他的类,因此增加新的具体命令类很容易: 把请求一个操作的对象与知道怎么执行一个操作的对象分隔开. 下面给出基本的类结构图: 上面这张图是命令模式的类结构的

shell脚本 中 cd不切换目录的问题

问题描述 小弟碰到这么一个问题 先上一段脚本:echo 'this is run ....'path1="/home/fengjc"cd $path1pwdecho 'done..'服务器会爆出:this is run ....: No such file or directory: command not founddone..为啥不能切换到我指定的目录 (目录是有的)求大神们协助啊...解决后 立即给分啊 解决方案 你是用什么执行的脚本,假设脚本名为t.sh1.sh t.sh 这样

linux中tar命令打包目录与排除目录打包

打包压缩目录很简单如下  代码如下 复制代码 tar -czf small.tar.gz small(目录名)  ;压缩并打包目录 更多示例  代码如下 复制代码 示例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩! [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩 [root@lin

linux中CHMOD命令修改目录权限数字含义

以下是使用绝对模式修改目录权限常见数字代表的含义示例: 模式 意义 777 所有用户都对文件具有读.写和执行权限 755 文件所有者对文件具有读.写和执行权限;组用户和其他用户对文件需有读和执行权限 711 文件所有者对文件具有读.写和执行权限;组用户和其他用户对文件具有执行权限 644 文件所有者可以读.写文件;组用户和其他用户可以读文件 640 文件所有者可以读.写文件;组用户可以读文件;其他用户不能访问文件   另一种常见的符号模式含义: who 用户类型 意义 u User 文件的所有者

实例讲解Android中ViewPager组件的一些进阶使用技巧_Android

我们经常看到使用了ViewPager的App,在每页上面都会有一个滑块来标志当前处于哪一页.在PagerView包里有android.support.v4.view.PagerTitleStrip和android.support.v4.view.PagerTabStrip两个组件,可以在布局文件中,作为ViewPager的子标签,并设定相对与ViewPager的位置(比如顶部).但这两个组件都很丑,并且标题会随着页面一起滑动,所以一般都不用. 其实实现一个滑块标志当前页面也很简单,大概需要两步:

实例讲解Android中ViewPager组件的一些进阶使用技巧

我们经常看到使用了ViewPager的App,在每页上面都会有一个滑块来标志当前处于哪一页.在PagerView包里有android.support.v4.view.PagerTitleStrip和android.support.v4.view.PagerTabStrip两个组件,可以在布局文件中,作为ViewPager的子标签,并设定相对与ViewPager的位置(比如顶部).但这两个组件都很丑,并且标题会随着页面一起滑动,所以一般都不用. 其实实现一个滑块标志当前页面也很简单,大概需要两步:

Linux中进程前后台切换相关命令

我们使用Linux时大多数是用shell命令行.一个命令窗口是无法直接执行多任务的.我们可以把某个任务先切到后台,再切别的任务到前台来操作.这个帖子整理一下这些常用的命令. 后台进程查看: jobs是用于后台进程查看的很方便的命令. jobs -l 可以显示出进程的pid. 注意一点:shell收到了SIGHUP信号后在退出前将SIGHUP转发给所有的作业(jobs).jobs由于收到SIGHUP而终止运行.(这取决于shell的) 将前台任务放到后台: 按下ctrl + z ,就将任务移到后台

linux中grep命令的使用

  linux中grep命令的使用 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Pr