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 是多用户系统

为了保护系统安全性,规定了不同用户身份和权限。

image-20211114200342429

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 权限。

  1. 数字表示:为权限定义权重,相加得到当前身份的权限值。
    • r = 4
    • w = 2
    • x = 1
    • 无权限 = 0
  2. 符号表示:用符号代表身份。
    • u:表示属主。
    • g:表示属组。
    • o:表示其它。

示例:对于属性 drwxr-xr-x

  1. 数字表示:权重值为 755。
    • owner:rwx = 4+2+1 = 7
    • group:r-x = 4+0+1 = 5
    • others:r-x = 4+0+1 = 5
  2. 符号表示
    • 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 文件名

进入阅读页面后,可使用以下常用指令:

  1. 翻页/行:

    • SPACE(空格键):向下翻 1 页。
    • b:往回翻页。
    • ENTER(回车键):向下翻 1 行。
  2. 搜索

    • /字符:在文件当前位置中,向下搜索指定字符。
    • n:重复上次搜索(i.e. 继续向下搜索一次)。
  3. 其它:

    • q:退出。
    • :f:显示当前文件名和行号。

less (🔥)

比 more 的功能更加强大,支持反向搜索。

less 文件名

常用指令

  1. 翻页/行:
    • SPACE(空格键):向下翻 1 页。
    • b:往回翻页。
    • ENTER(回车键):向下翻 1 行。
    • pagedown/pageup(翻页键):向上/下翻 1 页。
    • up/down(方向键):向上/下翻 1 行。
  2. 搜索
    • /字符:在文件当前位置中,向下搜索指定字符。
    • ?字符:在文件当前位置中,向上搜索指定字符。
    • n:重复上次搜索(i.e. 继续向上/下搜索一次)。
    • N:按上次搜索的反向搜索。
  3. 其它:
    • q:退出。
    • :f:显示当前文件名和行号。

3.3、头尾

输出文件的前几行(默认 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

  1. 不带参数时,默认创建硬链接。
  2. 使用 -s 参数,创建软链接。

示例

  1. 创建文件,并为其创建硬链接和软链接。

    • 硬链接:首个字符是 -,说明以文件形式存在。

    • 软链接:首个字符是 l,说明以链接形式存在。

      image-20211116013201142

  2. 删除文件,查看链接的情况。

    • 硬链接:正常。

    • 软链接:失效,成为死链接。

      image-20211116014010699

posted @ 2021-11-14 00:20  Jaywee  阅读(658)  评论(0编辑  收藏  举报

👇