记录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 示例
# 常用删除命令 删除a及a下所有子目录 并且不需要确认 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. 文件权限详解
文件权限分为三种
- 读 r 用数字表示为4
- 写 w 用数字表示为2
- 执行 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"