Linux文件与目录管理
一.目录与路径
1.相对路径与绝对路径
**相对路径的用途:**当在同一工作目录,需要切换到不同的目录时(绝对路径较长),使用相对路径比较方便。
**绝对路径的用途:**绝对路径的正确度要比较好,如果是在写程序(shell scripts)来管理系统的条件下,务必使用绝对路径的写法。
2.目录的相关操作
比较特殊的目录:
.
:代表此层目录;..
:代表上一层目录;-
:代表前一个工作目录;~
:代表[目前用户身份]所在的家目录;~account
:代表account这个目录的家目录(account是个账号名称)。
几个常见的处理目录的指令:
cd
:变换目录;pwd
:显示当前目录;mkdir
:建立一个新的目录;rmkdir
:删除一个空的目录。
指令cd(change directory,变换目录):
操作示例:
注意:目录名称与cd指令之间存在一个空格。
指令pwd(Print Working Directory)(显示目前所在的目录):
mkdir(建立新目录):
使用示例:
mkdir可以建立新的目录,但是要一层一层的建立才行;如果想像上图那样一次建立需要加上-p
,同时我们可以使用-m 权限
对要建立的目录进行预设权限。
rmdir(删除[空]的目录):
使用示例:
删除旧的目录可以使用指令rmdir text
,但是只能一层一层的删除,而且被删除的目录里面必定不能存在其他的目录或文件;如果要将所有目录下的东西都杀掉,这个时候必须使用rm -r text
;加入-p
,可以删除上层的目录。
3.关于执行文件路径的变量:$PATH
在任何地方都可以执行/bin/ls
指令,是因为环境变量PATH的帮助所致。
可以使用指令echo $PATH
来看看到底有哪些目录被定义出来。(echo:显示,印出)
PATH(一定是大写)这个变量的内容是由一堆目录所组成,每个目录中间用冒号(:)来隔开,每个目录是有[顺序]之分的。
理解示例:
- 不同身份使用者预设的PATH不同,默认能够随意执行的指令也不同(如root与duo);
- PATH是可以修改的;
- 使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比搜寻PATH来的正确;
- 指令应该要放置到正确的目录下,执行才会比较方便;
- 本目录(.)最好不要放到PATH当中。
二.文件与目录管理
1.文件与目录的检视:ls
ls指令语法:
只下达ls时,默认显示的只有:非隐藏档的档名、以档名进行排序及文件名代表的颜色显示;
2.复制、删除与移动:cp,rm,mv
cp(copy,复制文件与目录):
指令cp的语法:
相关示例:
在预设的条件中,cp的来源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。如例二中,以root身份复制过来的文件拥有者与族群就变成了root所有。因此,在进行备份的时候,某些需要特别注意的特殊权限文件以及一些配置文件就不能直接以cp来复制,而必须加上-a或者是-p等可以完整复制文件权限的选项才行。
cp示例2:
-l,-s都会建立所谓的连结档,但是这两种连结档却有不一样的情况:-l就是所谓的实体链接(hard link),至于-s则是符号链接(symbolic link),简单说,bashrc_slink是一个快捷方式,这个快捷方式会连结到bashrc去,所以会有个->的符号。
cp指令示例3:
在复制时,必须了解清楚:
- 是否需要完整的保留来源文件的信息;
- 来源文件是否为连结档;
- 来源档是否为特殊的文件,例如:FIFO,socket等?
- 来源文件是否为目录?
rm(移除文件或目录):
rm指令示例:
使用指令rm -r
之前,千万注意,因为该目录或文件肯定会被root删除,因为系统不会在此询问你是否要删除。确定该目录不要了,用rm -r
来循环删除是个不错的选择。
范例四:档名最好不要使“-”开头,因为-后面一般接的是选项,因此,单纯的使用rm -aaa-
系统指令会误判;所以避过首位字符是“-”的方法就是加上本目录[./]即可,或者使用指令rm -- -aaa-
.
mv(移动文件与目录,或更名):
指令mv使用语法:
3.取得路径的文件名与目录名称
三.文件内容查阅
- cat:由第一行开始显示文件内容;
- tac:从最后一行开始显示,可以看出tac是cat的倒写;
- nl:显示的时候,顺道输出行号;
- more:一页一页的显示文件内容;
- less:与more类似,但是比more更好的是,他可以往前翻页;
- head:只看头几行;
- tail:只看尾巴几行;
- od:以二进制的方式读取文件内容。
1.直接检视文件内容
查阅文件内容可以使用cat/tac/nl这几个指令;
cat(concatenate):
使用语法:
当文件内容的行数超过40行以上,来不及在屏幕上面看到结果,所以要配合more或者是less。
tac(反向列示):
就是:由最后一行到第一行反向在屏幕上显示出来。
nl(添加行号打印):
nl可以将行号做比较多的显示设计,包括位数与是否自动补齐0等等的功能。
2.可翻页检视
nl,cat,tac都是一次性将数据一口气显示dao屏幕上面,more和less可以一页一页的观察,这样前面的数据才不会看不到。
more(一页一页翻动):
示例:
当文件内容行数大于屏幕输出的行数时,就会出现类似上面的图示,重点在最后一行,会显示目前显示的百分比,而且最后一行还可以输入一些有用的指令:
- 空格键(space):代表向下翻一页;
- Enter:代表向下翻一行;
- /字符串:代表在这个显示的内容当中,向下搜寻[字符串]这个关键词;
- :f:立刻显示出文件名以及目前显示的行数;
- q:代表立刻离开more,不再显示该文件内容;
- b或[ctrl]-b:代表往回翻页,不过这动作只对文件有用,对管线无用。