简介:Linux 文件与目录基础操作命令汇总,包含 touch、cat、more、cp、mv、rm、which、find,附带语法、示例、坑点,适合期末 / 面试复习。
前言
Linux 一切皆文件,目录本质也是特殊文件。 ls 查看文件类型小提示:
- 以
d开头:文件夹(目录 directory) - 以
-开头:普通文件
补充:还有
l软链接、b块设备、c字符设备等,本篇重点普通文件和目录。
1. touch:创建文件
作用
创建空白普通文件;如果文件已存在,会更新文件的访问 / 修改时间戳,不会覆盖原有内容。
语法
touch Linux文件路径
- 参数必填 :文件路径,支持相对路径、绝对路径、特殊路径符号 (
.当前目录,..上级目录,~家目录) - touch不能直接创建文件夹 ,创建文件夹用
mkdir
示例
# 在当前目录创建 test.txt
touch test.txt
# 绝对路径创建
touch /home/xxx/demo.txt
# 相对路径,在上一级目录创建文件
touch ../readme.md
易错点:touch 是文件 ,不是文件夹,
touch testdir只会创建名为 testdir 的文件,不是目录。
2. cat:查看文件内容
作用
一次性完整输出文件全部内容到终端,适合小文件;大文件会直接刷屏,不方便阅读。
语法
cat 文件路径
示例
cat test.txt
# 查看多个文件,依次输出
cat test1.txt test2.txt
补充拓展:
cat > test.txt可以简单写入内容(Ctrl+D 结束输入)
3. more:分页查看文件
作用
分页查看文件内容,适合大文件,不会一次性全部打印。
和 cat 区别:cat 一次性全部输出;more 分页,支持翻页。
语法
more 文件路径
操作交互
-
空格:向下翻一页
-
回车:向下滚动一行
-
q:退出查看
-
/关键词:在文件内搜索(可选拓展)more test.txt
拓展:日常也推荐
less,功能比 more 更强,支持上下箭头滚动。
4. cp:复制 文件 / 文件夹
cp = copy,复制文件或目录。
语法
cp [-r] 源路径 目标路径
-r:可选参数,递归复制 ,复制文件夹必须加-r;复制普通文件不需要- 参数 1:源(被复制的文件 / 文件夹)
- 参数 2:目标(复制到哪里)
示例
# 复制文件
cp test.txt /home/xxx/
# 复制文件夹,必须加 -r
cp -r itheima itcast
坑点:不加
-r直接复制文件夹会报错!文件夹里面有多层子文件子目录,需要递归。
5. mv:移动 / 重命名 文件 / 文件夹
mv = move,两个核心能力:移动 、改名
语法
mv 源路径 目标路径
- 参数 1:源(要移动的文件 / 文件夹)
- 参数 2:目标位置
规则:
- 如果目标路径已经存在:把源移动到目标目录里面
- 如果目标路径不存在 :对源文件 / 文件夹重命名
示例
# 移动 test 文件夹到Desktop目录
mv test Desktop
# test2不存在 → 将test2重命名为test3
mv test2 test3
小技巧:mv 不需要
-r!移动文件夹直接写,不用递归参数,和 cp、rm 不一样。
6. rm:删除 文件 / 文件夹(高危命令!)
rm = remove,删除文件、目录,非常危险!
语法
rm [-r -f] 路径1 路径2 ... 路径N
-r:递归删除,删除文件夹必须加 - r,删除普通文件不用-f:force 强制删除,不弹出确认提示- 支持一次性删除多个文件 / 目录,空格分隔
- 支持通配符
*
通配符规则
test*:匹配以 test 开头的所有内容*test:匹配以 test 结尾的所有内容*test*:匹配文件名包含 test的所有内容
示例
# 删除普通文件
rm test3.txt
# 删除文件夹,加 -r
rm -r test2
# 一次性删除多个目录
rm -r test2 test3 test4 itheima
# 通配符:删除所有test开头的文件
touch test1 test2 test3
rm -r test*
# 删除所有文件名包含test的
touch 1test2 2test2 3test2
rm -r *test*
-f 强制删除演示
# 切换root用户(需要密码)
su - root
# 创建测试文件
touch test.txt
# 普通删除,部分系统会提示确认
rm test.txt
# 强制删除,无任何确认提示,直接删掉
rm -f test.txt
# 退出root,回到普通用户
exit
⚠️ 重要警告
rm没有回收站!删除之后很难恢复!- root 用户下执行
rm -rf /会直接摧毁整个系统,绝对不要执行- 使用通配符前,建议先用
ls 匹配规则先看一下会匹配哪些文件,确认无误再 rm,例如ls test*
7. which:查看命令本体程序位置
原理
Linux 的命令本质就是二进制可执行程序 ,类似 Windows .exe。 which 用来查找这条命令对应的程序存放路径。
语法
which 命令名
示例
which cd
which pwd
which touch
which mkdir
which cp
which mv
补充:部分内置 shell 命令(如 cd)which 可能找不到,因为它不是独立外部程序,属于 shell 内建命令。
8. find:文件查找命令
find 可以按文件名 、文件大小搜索文件,功能强大。
① 按文件名查找
语法:
find 起始搜索路径 -name "被查找文件名"
- 从【起始路径】向下递归搜索
-name按文件名匹配,名称建议加引号,支持通配符- 切换 root 用户后,才有权限全盘搜索(从根目录
/搜索)
示例:
# 从根目录全盘搜索名字叫test的文件
find / -name "test"
# 通配符搜索
find / -name "test*" # test开头
find / -name "*test" # test结尾
find / -name "*test*" # 文件名包含test
② 按文件大小查找
语法:
find 起始路径 -size +|-n[kMG]
+:大于;-:小于- n:数字
- 单位:
kKB,MMB,GGB
示例:
# 查找小于10KB的文件
find / -size -10k
# 查找大于100MB的文件
find / -size +100M
# 查找大于1GB的文件
find / -size +1G
辅助查看文件大小:
ls -lh locale-archive
ls -lh:人性化单位展示文件大小,方便核对。
命令速查表(复习用,可直接复制)
表格
| 命令 | 作用 | 常用参数 |
|---|---|---|
| touch | 创建空白文件 | 无 |
| cat | 一次性查看文件 | 无 |
| more | 分页查看文件 | 空格翻页,q 退出 |
| cp | 复制 | -r 递归复制文件夹 |
| mv | 移动 / 重命名 | 无需 - r |
| rm | 删除 | -r删目录,-f强制删除 |
| which | 查找命令程序位置 | 无 |
| find | 搜索文件 | -name按名,-size按大小 |
复习要点总结
- 操作文件夹:cp/rm 需要
-r,mv不需要 - rm 高危,无回收站,root 下慎用;用通配符先 ls 预览
- 通配符
*:匹配任意字符 - find 支持文件名 + 文件大小两种搜索方式
- which 查看外部命令的二进制程序路径,shell 内置命令查不到