Linux文件操作是日常系统管理、开发和维护中的核心技能,熟练掌握常用命令能极大提升工作效率,以下从文件与目录浏览、创建、复制、移动删除、权限管理、查找及压缩等方面详细介绍相关命令。

文件与目录浏览
- ls:列出目录内容,常用选项包括
-l
(长格式显示,含权限、所有者、大小等)、-a
(显示隐藏文件,以开头)、-h
(人类可读格式显示文件大小,如K、M)、-t
(按修改时间排序,最新在前)。ls -laht
可查看详细列表并按时间倒序排列。 - pwd:显示当前工作目录的完整路径,帮助用户确认当前位置。
文件与目录创建
- mkdir:创建目录,选项
-p
可递归创建多级目录(如mkdir -p parent/child
,即使父目录不存在也能创建)。 - touch:创建空文件或更新文件时间戳,若文件不存在则创建,存在则更新其访问和修改时间。
文件复制与移动删除
- cp:复制文件或目录,选项
-r
(递归复制目录,如cp -r source_dir target_dir
)、-i
(覆盖前提示,避免误操作)、-p
(保留文件权限、时间戳等属性)。 - mv:移动文件/目录或重命名。
mv old_name new_name
可重命名文件,mv file.txt /path/to/dest/
可移动文件到目标目录,选项-i
同样用于覆盖提示。 - rm:删除文件或目录,选项
-r
(递归删除目录)、-f
(强制删除,不提示确认),危险操作需谨慎,如rm -rf /
会删除系统根目录,务必确认路径正确。
权限管理
Linux权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1,权限对象为所有者(u)、所属组(g)、其他用户(o)。
- chmod:修改权限,可通过数字或符号方式。
chmod 755 file.txt
设置所有者rwx(7)、组和其他用户rx(5);chmod u+x script.sh
为所有者添加执行权限。 - chown:修改文件所有者,选项
-R
可递归修改目录及子文件所有者,如chown user:group file.txt
修改所有者和所属组。
文件查找
- find:按名称、类型、大小、时间等条件查找文件。
find /home -name "*.log"
在/home目录下查找所有.log文件;find . -type f -size +10M
在当前目录查找大于10MB的普通文件。 - grep:在文件中搜索文本,支持正则表达式,选项
-i
(忽略大小写)、-r
(递归搜索目录),如grep -r "error" /var/log/
在日志目录中搜索包含"error"的行。
文件压缩与解压
- tar:打包/解包工具,常用选项
-c
(创建)、-x
(解压)、-v
(显示过程)、-f
(指定文件名)、-z
(调用gzip压缩/解压)。tar -czf archive.tar.gz /path/to/dir
将目录压缩为.tar.gz文件;tar -xzf archive.tar.gz
解压。 - zip/unzip:zip格式压缩工具,
zip -r archive.zip dir/
压缩目录,unzip archive.zip
解压。
其他实用命令
- cat:查看文件内容,适合小文件,
cat -n file.txt
显示行号。 - less/more:分页查看文件内容,
less
支持上下翻页、关键词搜索(输入/关键词)。 - head/tail:查看文件开头/结尾内容,
head -n 10 file.txt
查看前10行,tail -f file.txt
实时跟踪文件更新(如日志监控)。
文件操作命令速查表
命令 | 功能描述 | 常用选项示例 |
---|---|---|
ls | 列出目录内容 | -laht (详细、隐藏、时间、人类可读) |
mkdir | 创建目录 | -p (递归创建多级目录) |
touch | 创建空文件/更新时间戳 | 无 |
cp | 复制文件/目录 | -r (递归)、-p (保留属性) |
mv | 移动/重命名文件 | -i (覆盖提示) |
rm | 删除文件/目录 | -rf (强制递归删除) |
chmod | 修改权限 | 755 (数字)、u+x (符号) |
chown | 修改所有者/所属组 | -R (递归)、user:group |
find | 查找文件 | -name "*.log" (按名)、-type f (按类型) |
grep | 文本搜索 | -r (递归)、-i (忽略大小写) |
tar | 打包/解压 | -czf (压缩)、-xzf (解压) |
cat | 查看文件内容 | -n (显示行号) |
less | 分页查看文件 | (搜索) |
head/tail | 查看文件开头/结尾 | -n 10 (指定行数)、-f (实时跟踪) |
相关问答FAQs
Q1: 如何批量重命名文件?
A: 可使用rename
命令(需安装)或结合for
循环和mv
命令,将当前目录下所有.txt文件扩展名改为.log:for f in *.txt; do mv "$f" "${f%.txt}.log"; done
,其中${f%.txt}
表示移除变量f
末尾的.txt
后缀。
Q2: 如何查找并删除指定大小的文件?
A: 使用find
命令定位文件,通过-exec
或xargs
结合rm
删除,例如查找大于100MB的文件并删除:find /path -type f -size +100M -exec rm -f {} \;
,注意代表查找到的文件路径,\;
表示命令结束,执行前建议先用ls -lh {}
确认文件列表,避免误删。
