Linux文件与目录管理
前言
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
- 绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。 - 相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd . ./man 这就是相对路径的写法。
一、处理目录的常用命令
- ls(list files):列出目录及文件名
- cd(change directory):切换目录
- pwd(print work directory):显示当前的目录
- mkdir(make directory):创建一个新的目录
- rmdir(remove directory):删除一个空的目录
- cp(copy file):复制文件或目录
- rm(remove):删除文件或目录
- mv(move file):移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
(一)工作目录切换命令
1.pwd(显示目前所在目录)
pwd [P]
- -P:显示出确实的路径,而非使用链接(link)路径。
2.cd(切换目录)
语法:
cd [相对路径或绝对路径]
"cd -"命令返回到上一次所处的目录
"cd . ."命令进入上级目录
"cd ~"命令切换到当前用户的家目录
"cd ~username"切换到其他用户的家目录
3.ls(列出目录)
在Linux系统当中,ls命令可能是最常被运行的。
ls命令用于显示目录中的文件信息,格式为“ls [选项] [文件] ”。
选项与参数:
- -a:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
所处的工作目录不同,当前工作目录下的文件肯定也不同。将这两个参数整合之后,再执行ls命令即可查看当前目录中的所有文件并输出这些文件的属性信息:
[root@www ~]# ls -al
如果想要查看目录属性信息,则需要额外添加一个-d参数。例如,可使用如下命令查看/etc目录的权限与属性信息:
[root@linuxprobe ~]# ls -ld /etc
(二)文件目录管理命令
1.touch命令
touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
在创建空白的文本文件方面,这个touch命令相当简捷,简捷到没有必要铺开去讲。比如,touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件。对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。
- -a:仅修改“读取时间”(atime)
- -m:仅修改“修改时间”(mtime)
- -d:同时修改atime与mtime
2.mkdir(创建新目录)
mkdir [-mp]目录名称
选项与参数:
- -m:配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p:帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
3.cp(复制文件或目录)
cp命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
大家对文件复制操作应该不陌生,在Linux系统中,复制操作具体分为3种情况:
- 如果目标文件是目录,则会把源文件复制到该目录中;
- 如果目标文件也是普通文件,则会询问是否要覆盖它;
- 如果目标文件不存在,则执行正常的复制操作。
接下来,使用touch创建一个名为install.log的普通空白文件,然后将其复制为一份名为x.log的备份文件,最后再使用ls命令查看目录中的文件:
用 root 身份,将 root 目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
4.mv(移动文件与目录,或修改名称)
mv [选项] 源文件 [目标路径|目标文件名]
5.rm(移除文件或目录)
rm [选项] 文件
选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息,强制删除;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
6.rmdir(删除空的目录)
rmdir [-p] 目录名称
- -p:从该目录起,一次删除多级空目录
7.dd
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。当然如果愿意的话,还可以在复制过程中转换其中的数据。
Linux系统中有一个名为/dev/zero的设备文件,每次在课堂上解释它时都充满哲学理论的色彩。因为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。
8.file
file命令用于查看文件的类型,格式为“file 文件名”。
二、Linux文件内容查看
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
1.cat
cat命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。
2.tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
3.nl(显示行号)
4.more
more命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。
more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容。
5.less
6.head
7.tail
tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名”
三、文本文件编辑命令
1.tr命令
tr命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。
2.wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
3.stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。
4.cut命令
cut命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。
5.diff命令
diff命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。