几个常见的处理目录的命令:
- ls: 列出目录
- cd:切换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录,或修改文件与目录的名称
ls (列出目录)
选项与参数:
- -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- -t :用文件和目录的更改时间排序
ls -l /home/ -->显示home目录下的内容
cd (切换目录)
cd是Change Directory的缩写,这是用来变换工作目录的命令。
语法: cd [相对路径或绝对路径]
cd - :上一次访问的路径
cd ~ :当前用户的目录
#使用 mkdir 命令创建 runoob 目录
[root@itheima ~]# mkdir runoob
#使用绝对路径切换到 runoob 目录
[root@itheima ~]# cd /root/runoob/
#使用相对路径切换到 runoob 目录
[root@itheima ~]# cd ./runoob/
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@itheima runoob]# cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@itheima ~]# cd ..
pwd (显示目前所在的目录)
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
选项与参数:
- -P :显示出确实的路径,而非使用连结 (link) 路径。(注意P是大写的)
[root@itheima ~]# pwd
/root <== 显示出当前目录
[root@itheima ~]# cd /var/mail <==注意,/var/mail是一个连结档
[root@itheima mail]# pwd
/var/mail <==列出目前的工作目录
[root@itheima mail]# pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多~
因为 /var/mail 是连结档,连结到 /var/spool/mail
所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!
mkdir (创建新目录)
如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。
选项与参数:
- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
[root@itheima ~]# cd /tmp
[root@itheima tmp]# mkdir test <==创建一名为 test 的新目录
[root@itheima tmp]# mkdir test1/test2
mkdir: cannot create directory `test1/test2':
No such file or directory <== 没办法直接创建此目录!
[root@itheima tmp]# mkdir -p test1/test2
加了这个 -p 的选项,可以自行帮你创建多层目录!
rmdir (删除空的目录)
选项与参数:
- -p :连同上一级『空的』目录也一起删除
删除 runoob 目录
[root@itheima rmdir runoob/
将 mkdir 实例中创建的目录(/tmp 底下)删除掉!
[root@itheima tmp]# rmdir test <==可直接删除掉,没问题
[root@itheima tmp]# rmdir test1 <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@itheima tmp]# rmdir -p test1/test2
[root@itheima tmp]# ls -l <==您看看,底下的输出中test与test1不见了!
利用 -p 这个选项,立刻就可以将 test1/test2 一次删除。
不过要注意的是,这个 rmdir 仅能删除空的目录,你可以使用 rm 命令来删除非空目录。
cp (复制文件或目录)
cp 即拷贝文件和目录。
语法:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
[root@itheima ~]# cp ~/1.txt /tmp/1.txt
[root@itheima ~]# cp -i ~/1.txt /tmp/1.txt
cp:是否覆盖"/tmp/1.txt"? y
[root@itheima ~]# cd /tmp
[root@itheima tmp]# ls
1.txt yum.log
-r, -R: 递归复制目录及内部的所有内容;
复制目录应该加上 -r,例如 cp dir1 mydir -r 或者 cp -r dir1 mydir2
rm (移除文件或目录)
语法:
rm [-fir] 文件或目录
选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
[root@itheima tmp]# ls
1.txt text yum.log
[root@itheima tmp]# rm -f text
rm: 无法删除"text": 是一个目录 <== rm -f 无法用来删除目录
[root@itheima tmp]# rm -i 1.txt
rm:是否删除普通文件 "1.txt"?n
[root@itheima tmp]# ls
1.txt text yum.log
[root@itheima tmp]# rm -f 1.txt
[root@itheima tmp]# ls
text yum.log
[root@itheima tmp]# rm -r text
rm:是否删除目录 "text"?y
[root@itheima tmp]# ls
yum.log
如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!
mv (移动文件与目录,或修改名称)
语法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
将某个文件移动到某个目录去,就是这样做!
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2