Linux文件与目录管理
一般而言绝对路径的正确度比较好。建议如果在写程序来管理系统的情况下,务必使用绝对路径的写法。虽然较麻烦但不会有问题。如果使用相对路径则可能由于你执行的工作环境
不同,导致问题发生。
目录相关操作
比较特殊的目录:
下面谈一谈几个常见的处理目录命令:
- cd:切换目录
- pwd : 显示当前目录
- mkdir:新建一个目录
- rmdir:删除一个空目录
cd(Change Directory 切换目录)
pwd(Print Working Directory 显示目前所在目录)
mkdir(make directory 新建目录)
默认情况下,所需要的目录得一级级建立才行,创建/home/test1/test2/test3这个目录。如果没有/home/test1/test2时,就没办法建立test3目录。加上-p这个参数。会帮你
依序建立所有目录。不建议常用-p这个参数,因为如果打错字,那么目录名称就会变得乱七八糟。
rmdir(删除“空”目录)
目录要一层一层删除才行,而且被删除的目录里面必定不能存在其他的目录或者文件。这也是所谓的空目录的意思。如果要将所有目录下的东西都删除
可以用“rm -r test”。
执行文件路径的变量:$PATH
当我们在执行命令的时候,系统会依照环境变量PATH的设置去每个PATH定义的目录下查询文件名为ls的可执行文件,如果在PATH定义的目录中含有多个
文件名为ls的可执行文件,那么先查询到的同名命令先被执行。
- 不同身份用户默认的PATH不同,默认能够随意执行的命令也不同;
- PATH是可修改的,所以一般用户还是可以通过修改PATH来执行某些位于/sbin或/usr/sbin下的命令来查询。
- 使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询PATH来得正确;
- 命令应该要放置到正确的目录下,执行比较方便;
- 本目录(.)最好不要放到PATH当中。
文件与目录管理
查看文件与目录:ls
复制、删除与移动:cp,rm,mv
cp(复制文件或目录)
cp复制这个命令是非常重要的,不同的身份者执行这个命令会有不同的结果产生,尤其是那个-a、-p的参数,对不同身份来说,区别非常大。
在默认条件中,cp的源文件与目标文件的权限是不同的。目的文件的所有者通常会是命令操作者本身。
总之,由于cp有种种的文件属性与权限的特性,所以,在复制时,必须要清楚了解到:
是否需要完整保留来源文件的信息?
源文件是否为软连接文件?
源文件是否为特殊的文件,例如 FIFO、socket?
源文件是否为目录?
rm(移动文件或者目录)
mv(移动文件与目录)