Linux文件管理
一、管理文件
1.目录和路径
文件与目录简介
文件是Linux操作系统用来存储信息的基本结构,是一组信息的集合。目录是一种特殊的文件,用来保存文件及其相关信息。所有的文件都会保存到目录中。
工作目录与用户主目录
(1)工作目录是用户当前所在的目录,他是可以随时改变的。
(2)用户主目录是用户登录成功后进入的默认目录,一般在“/home/用户名”目录下。
路径
通过“/”结合在一起的一个或多个目录及文件名的集合称为路径,路径又分为绝对路径和相对路径。绝对路径是指从根目录(/)开始的路径,如“/usr/local”。相对路径是相对于用户工作目录的路径,如“…/local”。
Linux操作系统中的特殊目录
特殊目录 | 含义 |
---|---|
. | 工作目录 |
. . | 工作目录的上一级目录,也就是父目录 |
~ | 用户主目录 |
2.目录操作命令
常用的目录操作包括创建目录(mkdir),删除空目录(rmdir),切换工作目录(cd),
查看当前目录(pwd),和列出目录内容(ls)等。
1.创建目录——mkdir命令
mkdir [-p] 目录名
“-p” 选项表示创建嵌套的多级目录树。如果不加“-p”选项,则只能在已经存在的目录下创建子目录。
创建目录
# 在当前目录下创建子目录“book”
[root@localhost ~]# mkdir book
# 在“package” 目录下创建子目录“mysql” 。如果“package” 目录不存在,则同时创建该目录
[root@localhost ~]# mkdir -p package/mysql
删除空目录——rmdir命令
rmdir [-p] 目录名
“-p”选项表示递归删除空目录。如果子目录删除后其父目录为空,则同时删除父目录。
删除空目录
# 在当前目录下删除 “package” 目录,由于 “package” 目录不存在 "mysql" 目录,
所以无法将其删除
[root@localhost ~]# rmdir package
rmdir:删除 'package' 失败:目录非空
# 在当前目录下删除 “package/mysql” 目录,执行命令后,子目录“mysql”
和父目录“package” 同时被删除
[root@localhost ~]# rmdir -p package/mysql
切换工作目录——cd命令
cd [目录名]
常用的cd命令
命令 | 说明 |
---|---|
cd | 切换到户主目录 |
cd. . | 切换到当前目录的上级目录 |
cd. ./. . | 切换到当前目录的上两级目录 |
cd / | 切换到根目录(/) |
实例
[root@localhost ~]# cd /etc/rpm
查看当前工作目录——pwd命令
pwd
实例
[root@localhost ~]# pwd
/root
列出目录内容——ls命令
ls [选项] [文件或目录名]
选项 | 含义 |
---|---|
-a | 显示所有文件,包括以“.” 开头的隐藏文件 |
-l | 以长格式显示文件的属性、大小详细信息 |
-d | 仅显示目录本身的详细信息 |
3.文件操作命令
创建空命令——touch命令
touch [-d] 文件名
“-d” 选项表示设置文件的读取时间和修改时间。如果不加 “-d” 选项,表示创建一个空文件。
实例
在“book”目录下创建名为“poerty” 的文件,然后将文件的读取时间和修改时间设置为“2021年10月10日”。
[root@localhost ~]# touch book/poetry
[root@localhost ~]# touch -d 2021-10-10 book/poetry
查看文件类型——file命令
file 文件名
查看名为“initial-setup-ks.cfg”的文件类型
[root@localhost ~]# file initial-setup-ks.cfg
inital-setup-ks.cfg:ASCII text
复制文件或目录——cp命令
cp [选项] 源文件或目录名 目录文件或目录名
cp命令常用选项含义如下表
选项 | 含义 |
---|---|
-r | 递归复制整个目录树 |
-f | 若目录文件已存在,则强制覆盖 |
-i | 若目录文件已经存在,则询问用户是否覆盖 |
-p | 文件的属性也一起复制 |
-d | 若源文件为链接文件,则复制该链接文件属性 |
实例
在“book”目录下创建名为“literature”的目录,然后将“book”目录下的文件“poetry”复制到“book/literature”目录下。
[root@localhost ~]# mkdir book/literature
[root@localhost ~]# cp book/poetry book/literature
删除文件或目录——rm命令
rm [选项] 文件或目录名
rm常用选项含义
选项 | 含义 |
---|---|
-r | 递归整个目录树 |
-f | 不询问用户,强制删除文件或目录 |
-i | 删除文件或目录时询问用户是否删除 |
实例
删除文件“user_deng”并在删除时询问用户是否删除
[root@localhost ~]# rm -i user_deng
移动文件或目录——mv命令
mv [选项] 源文件或目录名 目录文件或目录名
mv常用命令含义
选项 | 含义 |
---|---|
-f | 不询问用户,强制移动文件或目录 |
-i | 若目标文件或目录已经存在,则询问用户是否覆盖 |
实例
将“book”目录及其所有子目录和文件移动到根目录中
[root@localhost ~]# mv book /
查找文件或目录——find命令
find [查找范围] [查找条件]
find常用命令条件含义
查找条件 | 含义 |
---|---|
-name | 查找指定名称的文件 |
-size | 查找指定大小的文件 |
-user | 查找属于指定用户的文件 |
-group | 查找属于指定用户组的文件 |
-type | 查找指定类型的文件 |
实例
查找“/book” 目录下所有以"p"开头的问文件
[root@localhost ~]# find /book -name 'p*'
/book/poetry
/book/literature/poetry
查找命令的绝对路径——which命令
which 命令名
实例
查找pwd命令的绝对路径
[root@localhost ~]# which pwd
/bin/pwd
4.文件内容操作命令
显示文件全部内容——cut命令
cat [选项] 文件名
cat命令常用选项的含义
选项 | 含义 |
---|---|
-n | 显示行号 |
-b | 显示非空行的行号 |
分屏显示文件内容——more命令和less命令
more [选项] 文件名
more常用选项如下表
按键 | 含义 |
---|---|
Enter | 向下移动一行 |
空格 | 向下翻动一页 |
b | 向上翻动一页 |
q | 退出more状态 |
与more命令相同,less命令也用于分屏显示文件内容,其格式入下
less [选项] 文件名
显示文件开始内容——head命令
head [-n] 文件名
显示文件末尾内容——tail内容
tail [选项] 文件名
选项 | 含义 |
---|---|
-n | 显示文件后的n行,默认显示后10行 |
-f | 命令超过文件的末端后,继续尝试读取更多的文件内容 |
实例
显示文件“book/poetry”的后两行
[root@localhost ~]# tail -2 /book/poetry
统计文件内容——wc命令
wc [选项] 文件名列表
wc常用选项含义
选项 | 含义 |
---|---|
-l | 统计行数 |
-w | 统计单词数 |
-c | 统计字节数 |
实例
统计文件“/book/poetry”的行数,单词数和字节数
[root@localhost ~]# wc -lwc /book/poetry
查找文件中符合条件的行——grep命令
grep [选项] 查找条件 目标文件名
grep常用命令选项
选项 | 含义 |
---|---|
-i | 查找时忽略大小写 |
-v | 反转查找,输出与查找条件不相符的行 |
-n | 在显示符合的字符串之前,标出该行行号 |
查找文件“/etc/hosts”中包含"localhost6"的行,并标出该行行号。
[root@localhost ~]# grep -n 'localhost6' /etc/hosts