这节学习对目录的各种增删改操作命令。
1)创建目录 make directory
mkdir
创建单个目录 > mkdir 目录名称
这是使用相对路径创建目录,使用绝对路径创建目录
也可以一次性创建多级目录
创建多级目录时需要加参数-p
其他需要注意的是:新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
2)移动(剪切)目录 move directory
mv
> mv dir1 dir2 //dir1移动到dir2的目录下
> mv dir1/dir2 dir3 //dir2移动到dir3的目录下
> mv dir1/dir2 dir3/dir4 //dir2移动到dir4的目录下
被移动目录有子目录,也是会一块移动到目标目录。
mv命令就是Windows下的剪切操作。
3)目录重命名 rename directory
上面两个测试都是在目标目录存在的情况下操作的,如果目标目录不存在,会不会报错?
发现没有报错,原先的目录名称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命令差不多一样理解:
目标目录存在就是复制到目标目录下级目录保持原名,
不存在就是复制到目标目录同级目录且重命名。
注意,复制目录时,需要加上-R或-r。
看似是空目录,每个目录里都有“.”、“..”这两个隐藏目录。
cp -r 和 cp -R 的区别:
cp -r 会把所有source当作普通文件(regular文件);而cp -R 对特殊文件(管道文件,块设备文件,字符设备文件)会进行创建操作,而不是拷贝。
注意:复制目录时,被复制目录不能与目标目录在同一目录出现相同的名字
5)删除目录 remove directory
rm
-f force强制的
> rm file //删除file文件
> rm -r dir //删除目录
> rm -rf filename //递归强制删除文件(目录)
> rm -rf / //递归强制删除"/斜杠"根目录
删除目录时,必须加上-r。
注意:目录和文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
rm命令即可以删除目录,还可以删除文件。还有一个命令也可以删除目录。
rmdir
rmdir只能删除空目录(只包含.和..的目录为空目录),使用频率不高。