Linux3️⃣文件管理 & 链接
1、文件管理
文件管理,是对文件和目录的操作。
1.1、复制 - cp
copy file
cp 源文件 目标路径
常用参数:
-l
:不复制文件,只是生成链接(相当于Windows系统中的快捷方式)。-d
:如果是链接,则复制链接而非文件本身。-f
:若目标文件已存在,强制覆盖且不给出提醒。-i
:若目标文件已存在,覆盖之前给出交互提示。-p
:除了文件内容,还复制修改时间、访问权限。-r
:递归将目录下的所有子目录和文件都复制。-a
:存档,等价于-dpr
。
1.2、移动/重命名 - mv
move file
目标路径存在则移动,不存在则重命名。
mv 源文件 目标路径
常用参数:
-b
:若目标文件已存在,覆盖之前为其创建备份。-f
:若目标文件已存在,强制覆盖且不给出提醒。-i
:若目标文件已存在,覆盖之前给出交互提示。-n
:若目标文件已存在,不覆盖。-u
:当源文件比目标文件新,或目标文件不存在时,才执行。
1.3、删除 - rm
remove file
rm 文件名
常用参数:s
-f
:强制删除,即使文件不存在或只读。-i
:删除之前给出交互提示。-r
:递归删除目录以及目录下的所有档案。
Hint:如何强制清除文件夹?
# 谨慎使用 rm -rf 文件夹
2、文件属性
Linux 是多用户系统。
为了保护系统安全性,规定了不同用户身份和权限。
2.1、基本属性 (🔥)
2.1.1、文件类型
属性的第 0 个字符。
属性含义:
d
:目录-
:文件l
:链接文档b
:可供存储的接口设备,如 U 盘c
:串行端口设备,如键盘、鼠标
2.1.2、权限 & 身份
权限:
从第 1 个字符开始,每三个字符(
rwx
)作为一组权限。
r
:可读w
:可写x
:可执行-
:无权限
用户身份:
Linux 用户是按组分类的,一个用户属于一个或多个组。
属主 | 属组 | 其他 | |
---|---|---|---|
含义 | 文件所有者 | 文件所有者的所在组 | 非属主、非属组的用户 |
对应权限 | user permissions | group permissions | other permissions |
字符 | 第 1-3 位 | 第 4-6 位 | 第 7-9 位 |
2.2、更改身份
2.2.1、属主 - chown
change owner
更改文件属主,也可同时修改文件属组。
# 修改属主名
chown 属主名 文件名
# 修改属主、属组
chown 属主名:属组名 文件名
常用参数:-R
- 如果是文件,则修改文件的属主。
- 如果是目录,则递归修改当前目录、目录下所有文件的属主。
2.2.2、属组 - chgrp
change group
更改文件属组
chgrp 属组名 文件名
常用参数:-R
- 如果是文件,则修改文件的属组。
- 如果是目录,则递归修改当前目录、目录下所有文件的属组。
2.3、更改权限
2.3.1、权限表示
Linux 中每种身份(owner/group/others)都有 r/w/x 权限。
- 数字表示:为权限定义权重,相加得到当前身份的权限值。
r
= 4w
= 2x
= 1- 无权限 = 0
- 符号表示:用符号代表身份。
u
:表示属主。g
:表示属组。o
:表示其它。
示例:对于属性
drwxr-xr-x
- 数字表示:权重值为 755。
- owner:rwx = 4+2+1 = 7
- group:r-x = 4+0+1 = 5
- others:r-x = 4+0+1 = 5
- 符号表示:
- u = rwx
- g = r-x
- o = r-x
2.3.2、权限 - chmod
change mode
更改文件权限。
# 数字(建议)
chmod 755 文件名
# 符号
chmod u=rwx,g=rx,o=rx 文件名
常用参数:-R
- 如果是文件,则修改文件的权限。
- 如果是目录,则递归修改当前目录、目录下所有文件的权限。
3、查看文件
文本编辑器 👉
3.1、全部
cat
concatenate
从第一行开始显示所有内容
cat 文件名
常用参数:
-A
:相当于-vET
选项。-b
:输出时显示非空白行的行号。-E
:在每行的结尾打印$
。-n
:输出时显示所有行的行号(相当于nl 文件名
)。-T
:将TAB
制表符显示为^I
。-v
:显示一些特殊字符。
tac
cat 的翻转。
从最后一行开始显示所有内容(反转)
tac fileName
3.2、翻页
推荐使用
less
。
more
文件阅读过滤器
more 文件名
进入阅读页面后,可使用以下常用指令:
-
翻页/行:
SPACE
(空格键):向下翻 1 页。b
:往回翻页。ENTER
(回车键):向下翻 1 行。
-
搜索:
/字符
:在文件当前位置中,向下搜索指定字符。n
:重复上次搜索(i.e. 继续向下搜索一次)。
-
其它:
q
:退出。:f
:显示当前文件名和行号。
less (🔥)
比 more 的功能更加强大,支持反向搜索。
less 文件名
常用指令:
- 翻页/行:
SPACE
(空格键):向下翻 1 页。b
:往回翻页。ENTER
(回车键):向下翻 1 行。pagedown/pageup
(翻页键):向上/下翻 1 页。up/down
(方向键):向上/下翻 1 行。
- 搜索:
/字符
:在文件当前位置中,向下搜索指定字符。?字符
:在文件当前位置中,向上搜索指定字符。n
:重复上次搜索(i.e. 继续向上/下搜索一次)。N
:按上次搜索的反向搜索。
- 其它:
q
:退出。:f
:显示当前文件名和行号。
3.3、头尾
head
输出文件的前几行(默认 10)
head 文件名
常用参数:
-c
:指定要输出的字节数。-n
:指定要输出的行数。
tail
输出文件的后几行(默认 10)
tail 文件名
常用参数:
-f
:跟踪读取(会持续输出最新的行,可用于监视日志文件)。-c
:指定要输出的字节数。-n
:指定要输出的行数。
4、链接 (🔥)
Linux 链接用于同步文件,但不会复制文件内容。
可以减少磁盘空间的占用。
4.1、类型
软链接 | 硬链接 | |
---|---|---|
- | 也称符号链接,symbolic link | hard link |
含义 | 包含了原文件的路径信息(指针) | 原文件的别名 |
存在形式 | 链接(l ) |
文件(- ) |
被链接类型 | 文件或目录,且可以是不存在的 | 存在的文件 |
属性 | 有单独的属性、身份、权限 | 与原文件一致 |
失效情况 | 删除软链接不影响文件;删除文件则软链接失效(aka 死链接 dangling link),若文件重新创建可恢复 | 文件本身和所有硬链接都删除时,文件才失效 |
跨文件系统创建 | ✔ | ❌ |
应用场景 | 创建快捷方式 | 创建备份,避免误删 |
4.2、创建链接 - ln
link files,为文件创建一个同步链接
ln 源文件 目标路径
常用参数:-s
- 不带参数时,默认创建硬链接。
- 使用
-s
参数,创建软链接。
示例
-
创建文件,并为其创建硬链接和软链接。
-
硬链接:首个字符是
-
,说明以文件形式存在。 -
软链接:首个字符是
l
,说明以链接形式存在。
-
-
删除文件,查看链接的情况。
-
硬链接:正常。
-
软链接:失效,成为死链接。
-