1.文件操作的基本操作
1.1 创建
创建目录
- mkdir:创建目录
1 | mkdir /home/dog |
1 | mkdir -p /home/animal/tiger |
创建文件
- dd:创建和转换文件
1 | dd if=/dev/zero of=sample_file bs=1M count=1 |
- touch:创建一个空文件
1 | touch hello.txt |
1.2 删除
删除目录
- rmdir:删除空目录
1 | rmdir /home/dog |
1 | rm -rf /home/animal/ |
删除文件
- rm:删除文件或目录
1 | rm /home/hello.txt |
1.3 拷贝
拷贝目录
- cp:拷贝目录
1
2
3cp -r /home/bbb/ /opt/
# 递归拷贝整个目录
cp -r /home/bbb/ /opt/ # 而没有 -r 会导致错误
拷贝文件
- cp:拷贝文件
1
2cp source.txt /path/to/destination/
# 拷贝文件到指定目录
1.4 移动和重命名
移动或重命名目录
- mv:移动或重命名目录
1
2mv /opt/bbb/ /home/
# 将目录/opt/bbb/移动到/home/
移动或重命名文件
- mv:移动或重命名文件
1 | mv cats.txt pigs.txt |
1 | mv pigs.txt /root/ |
1.5 查看文件

- cat:查看文件内容
1 | cat -n /etc/passwd | more |
- less:查看文件内容

1 | less filename.txt |
1 | head -n 10 filename.txt |
1 | tail -n 10 filename.txt |
2. 文件扩展操作
2.1 硬链接
- 特点
共享inode和磁盘块: 硬链接与原文件共享同一个inode和磁盘块,因此对其中一个文件进行修改,会影响到另一个文件。文件名数量增加: 每创建一个硬链接,文件名数量就会增加,但文件的实际大小和磁盘占用不变。不能跨分区: 硬链接只能在同一文件系统内创建,不能跨分区。不能为目录创建硬链接: 硬链接不能用于目录。
- 创建硬链接
1 | ln file1.txt file2.txt |
- 硬链接的应用场景
文件备份: 可以使用硬链接创建文件备份,节省磁盘空间。文件共享: 可以使用硬链接实现文件共享,方便多人访问同一文件。
- 注意事项
硬链接不能跨分区,因此在跨分区共享文件时需要使用软链接。硬链接不能用于目录,因为目录需要额外的信息来维护目录结构。
2.2 软链接
- 特点
不共享inode和磁盘块: 软链接会创建一个新的inode,并指向原文件的名字路径,因此软链接和原文件占用不同的磁盘空间。可以跨分区: 软链接可以跨分区创建,不受文件系统限制。可以创建对目录的链接: 软链接可以创建对目录的链接,方便快速访问目录。删除原文件,软链接仍然存在: 当删除原文件时,软链接仍然指向该文件,但文件内容已经不存在。
- 创建软链接
1 | ln -s /root /home/myroot |
- 软链接的应用场景
快速访问文件: 可以通过软链接快速访问位于不同目录或分区中的文件。文件备份: 可以使用软链接创建文件备份,但无法实现真正的文件复制。目录链接: 可以创建目录的软链接,方便快速访问相关目录。
- 注意事项
软链接指向的是文件名路径,如果原文件移动或重命名,软链接可能无法正常访问。软链接占用额外的磁盘空间,因为它们需要存储目标文件路径信息。软链接不能用于文件系统挂载点。
2.3 查找文件

- whereis:定位命令文件
1 | whereis bash |
- locate:快速查找文件
1 | locate filename |
- find:实时查找文件

1 | find . -type f -name "filename" |
2.4 文件压缩与解压
gzip & gunzip
1 | gzip filename |
1 | gunzip filename.gz |
zip & unzip
1 | zip -r myarchive.zip /path/to/directory |
1 | unzip myarchive.zip -d /destination/directory |
tar:打包与压缩

1 | tar -zcvf archive.tar.gz /path/to/directory |
1 | tar -zxvf archive.tar.gz -C /destination/directory |
2.5 vi编辑器:编辑文件
- 基本移动操作
1 | h j k l |

- 跳转命令
1 | G # 跳转到最后一行 |
插入和删除

常用命令:
i进入插入模式d删除行y复制行p粘贴u撤消
3. 文件的实用工具
3.1 grep:行过滤器
1 | grep 'word' filename |
- 选项:
-i忽略大小写-n显示行号-v反向匹配,即显示不包含’word’的行-c显示匹配行的数量
3.2 cut:列过滤器
1 | cut -c3 filename |
3.3 tr:字符转换
1 | tr 'a-z' 'A-Z' < filename |
3.4 sort:排序
1 | sort -k3 filename |
3.5 uniq:去重
uniq -s2 -w2
命令用于从输入中删除连续的重复行,并允许你指定跳过的字符数和要比较的字符数。在这个例子中,-s2意味着跳过输入中的前两个字符,-w2意味着仅比较输入中的后两个字符以查找重复行。
1 | uniq filename |
3.6 diff:比较文件
1 | diff file1.txt file2.txt |
3.7 patch:应用补丁
1 | patch < changes.patch |