Linux文件管理相关命令整理

176 阅读5分钟

「这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战」。

记录Linux对文件/目录/权限的增删改查命令

1. ls

查看目录下的所有文件信息

ls [参数] [目录]

目录不穿默认当前目录下

1.1 参数

参数说明
-a显示所有文件及目录(包括隐藏文件)
-l将文件的权限、拥有者、文件大小等详细信息列出(ll等同于ls -l)
-r将文件反序列出(默认按英文字母正序)
-t将文件按创建时间正序列出
-R递归遍历目录下文件

1.2 示例

# 查看当前目录下所有文件
ls -a

# 将文件的详细信息列出 ll是ls -l的软连接 
ll -a

2. pwd

查看当前所在目录的绝对路径

pwd

3. cd

切换工作目录

cd [目录路径]

目录路径可以为绝对路径,也可以为相对路径

当不穿目录路径时,默认回到~ ~代表当前用户home目录,比如root用户就回到/root目录

3.1 示例

# 切换/var目录
cd /var
# 获取当前工作目录
pwd 

4. touch

修改文件时间属性,如果文件不存在,会新建文件,如果文件存在修改文件时间

touch [参数] [文件]

4.1 参数

参数说明
-c如果指定文件不存在,不会建立新文件
-r使用参考文件的时间记录
-t设置文件的时间记录

4.2 示例

# 创建文件(文件不存在)
touch demo1.txt demo2.txt

# 查看文件及文件时间
ll

# 修改demo1.txt 文件时间 与系统时间保持一致
touch demo1.txt

# 修改demo2.txt 文件时间 与demo1.txt时间保持一致
touch -r demo1.txt demo2.txt

5.mkdir

创建目录命令

mkdir [-p] [目录名/目录路径]

-p参数如果目录路径中某个路径不存在,就会层级创建

5.1 示例

# 当前目录下创建目录hhh
mkdir hhh

# 创建多级目录 不加-p参数时报错
mkdir a/b/c/d
mkdir -p a/b/c/d

# tree查看目录结构
tree

6. rm

删除文件

rm [参数] [文件/目录]

6.1 参数

参数说明
-i删除前逐一询问确认
-f无需确认,直接删除
-r删除目录下所有文件

6.2 示例

# 常用删除命令 删除aa下所有子目录 并且不需要确认
rm -rf a

\

7. cp

复制文件/目录

cp [参数] [源文件] [目标文件/路径]

7.1 参数

参数说明
-d复制时保留链接
-f覆盖已经存在的目标文件而不给出提示
-i覆盖前询问
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r复制目录及目录内的所有项目

7.2 示例

# 创建 a/b目录 c/d目录
mkdir -p a/b
mkdir -p c/d

# 将c/d 复制到 a/b下 包含子目录使用-r参数递归复制
cp -r c a/b

8. mv

移动文件到指定位置,也可以当作修改文件/目录名的命令

mv [参数] [源文件] [目标文件位置]

8.1 参数

参数说明
-i若指定目录已有同名文件,则先询问是否覆盖旧文件
-f如果目标文件已经存在,不会询问而直接覆盖

8.2 示例

# 修改文件名 其实就是把源文件移动到同样的位置 文件名字改掉
touch a.txt
mv a.txt b.txt

# 移动当前目录下的所有文件到 tmp目录
mv ./* /tmp

9. rename

批量修改文件名

rename [原字符串] [新字符串] 文件

9.1 示例

# 创建两个文件
touch demo1.txt demo2.txt
ll
# 修改当前目录下所有文件名字 把文件名中的demo替换为DEMO
rename demo DEMO *

10. 文件权限详解

文件权限分为三种

  1. 读 r 用数字表示为4
  2. 写 w 用数字表示为2
  1. 执行 x 用数字表示为1

所以拥有读写执行的权限就可以简写为4+2+1=7

7就是最大的权限

文件权限角色分为三类 文件所属用户权限、所属用户组权限、其他组权限

ll 

其中第一个-后的rw就是文件所属用户权限

第二个-后的就是所属用户组的权限

第三个-后的就是其他组的权限

结合后面的文件所属用户及用户组,可以得出

DEMO1.ttt文件由root用户持有

权限为 root用户拥有读写权限 root用户组拥有读权限 其他组用户拥有读权限

10.1 chmod

修改文件权限

chmod [-R] [文件]

-R代表递归,即是否同时修改子目录的文件权限

10.1.1 示例

# DEMO1.ttt添加root用户执行权限 u代表用户 g代表用户组 o代表其他组用户
chmod u+x DEMO1.ttt

# 上面命令等价于 744 第一位为用户权限7 第二位为用户组权限4 第三位为其他组用户权限4  7/4/4就是读写执行权限的数字表示之和
chmod 744 DEMO2.ttt

10.2 chown

修改文件拥有者及用户组

chown [用户名:用户组名] [-R] 文件

-R同chmod一样,代表递归更新子目录

10.2.1 示例

# 创建用户test
adduser test
passwd test

# 修改文件用户为test
chown test DEMO1.ttt

ll

10.3 chgrp

修改文件用户组

chgrp [组名] [-R] [文件]

10.3.1 示例

chgrp test DEMO1.ttt

11. find

查找文件

find [路径] [参数] [匹配字符串] [一些操作]

11.1 参数

常用的几个参数

参数描述
-name按文件名查找
-perm按文件权限查找
-user按文件用户查找
-group按用户组查找
-mtime/-atime/-ctime +/-n按文件更新/访问/创建时间查找文件 +n是n天以前 -n是n天以内
-size按文件大小查找
-type按文件类型查找

11.2 示例

# 按文件名查找后缀是.txt的文件
find ./ -name "*.txt"