第十七章:第5节Linux目录与文件——目录操作

更新于:2019-01-22 10:18:11

这节学习对目录的各种增删改操作命令。


1)创建目录 make  directory

mkdir


创建单个目录 > mkdir  目录名称

1.png


这是使用相对路径创建目录,使用绝对路径创建目录

1.png


也可以一次性创建多级目录

1.png


创建多级目录时需要加参数-p


其他需要注意的是:新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。


2)移动(剪切)目录  move  directory

mv

    > mv  dir1       dir2           //dir1移动到dir2的目录下

    > mv  dir1/dir2  dir3           //dir2移动到dir3的目录下

    > mv  dir1/dir2  dir3/dir4      //dir2移动到dir4的目录下

1.png

1.png


被移动目录有子目录,也是会一块移动到目标目录。


mv命令就是Windows下的剪切操作。


3)目录重命名  rename  directory


上面两个测试都是在目标目录存在的情况下操作的,如果目标目录不存在,会不会报错?


1.png


发现没有报错,原先的目录名称nanshen变成了phpnanshen。


    > mv  dir1   newdir             //dir1移动到当前目录下,并改名字为newdir

    > mv  dir1/dir2  dir3           //dir2移动到dir3目录(存在)下,并改名字为 原名

    > mv  dir1/dir2  dir3/newdir    //dir2移动到dir3目录(存在)下,并改名字为newdir


总结:

mv指令的第二个参数:

目标目录存在就是移动到目标目录下级目录保持原名,

          不存在就是移动到目标目录同级目录且重命名。

mv是【移动 和 改名字】合并的指令。


注意:


mv命令同样适用于文件。


在同一文件系统中,mv命令只是移动和重命名,并没有生成新文件或目录,所以并不会更改文件或目录所属用户与用户组。举例:A用户如果有权限可以对属于B用户的文件重命名,重命名以后文件还是属于B用户。


如果是跨文件系统,mv需要删除原来的文件,在新文件系统拷贝原来的文件来创建文件,这时属主会发生改变。


4)复制目录 copy directory

cp


    -R recursive递归的

    > cp -R dir1  dir2                //dir1复制到dir2下,并改名字为 原名

    > cp -R dir1/dir2  dir3/newdir    //dir2复制到dir3下,并改名字为 newdir

    > cp -R dir1/dir2  newdir         //dir2复制到当前目录,并改名字为 newdir


    > cp  dir1/filea   dir2                 //filea复制到dir2下,并改名字为 原名

    > cp  dir1/filea   dir2/dir3/newfile    //filea复制到dir3下,并改名字为 newfile


这个和mv命令差不多一样理解:

目标目录存在就是复制到目标目录下级目录保持原名,

          不存在就是复制到目标目录同级目录且重命名。


1.png


注意,复制目录时,需要加上-R或-r。

1.png

看似是空目录,每个目录里都有“.”、“..”这两个隐藏目录。


cp -r 和 cp -R 的区别:


cp -r 会把所有source当作普通文件(regular文件);而cp -R 对特殊文件(管道文件,块设备文件,字符设备文件)会进行创建操作,而不是拷贝。


注意:复制目录时,被复制目录不能与目标目录在同一目录出现相同的名字

1.png


5)删除目录  remove directory

rm


    -f  force强制的

    > rm  file              //删除file文件

    > rm -r  dir            //删除目录

    > rm -rf  filename      //递归强制删除文件(目录)


    > rm -rf /              //递归强制删除"/斜杠"根目录


删除目录时,必须加上-r。


1.png


注意:目录和文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。


rm命令即可以删除目录,还可以删除文件。还有一个命令也可以删除目录。

rmdir

rmdir只能删除空目录(只包含.和..的目录为空目录),使用频率不高。