Linux系统中的文件和目录管理是日常运维和开发的核心操作,其中增删改查(CRUD)命令是基础中的基础,这些命令通过简洁的语法实现了对文件系统的高效操作,下面将详细介绍常用的增删改查命令及其使用场景。

查询(Read)命令:查看文件与目录信息
查询操作是Linux中最频繁的操作之一,主要用于获取文件、目录的属性及内容。
ls命令:列出目录内容
ls:列出当前目录的文件和目录名,默认不显示隐藏文件(以开头)。ls -l:以长格式显示,包含权限、所有者、大小、修改时间等详细信息。ls -a:显示所有文件,包括隐藏文件。ls -h:以人类可读格式显示文件大小(如K、M、G)。ls -R:递归列出子目录内容。
cat命令:查看文件内容
cat filename:直接显示整个文件内容,适合小文件。cat -n filename:显示行号。cat file1 file2 > file3:合并多个文件到新文件。
less/more命令:分页查看文件内容
(图片来源网络,侵删)less filename:支持上下翻页、搜索()、退出(q),适合大文件。more filename:基本分页功能,按空格键翻页,按q退出。
head/tail命令:查看文件开头或结尾部分
head -n 5 filename:显示文件前5行。tail -n 5 filename:显示文件后5行。tail -f filename:实时跟踪文件内容变化(如日志文件)。
wc命令:统计文件信息
wc filename:显示文件的行数、单词数、字节数。wc -l filename:仅统计行数。
find命令:按条件查找文件
find /path -name "*.txt":在指定路径下查找扩展名为.txt的文件。find /path -type f -size +10M:查找大于10MB的普通文件。find /path -mtime -7:查找7天内修改过的文件。
增加(Create)命令:创建文件与目录
增加操作主要用于创建新文件或目录,或向文件中添加内容。

mkdir命令:创建目录
mkdir newdir:创建单个目录。mkdir -p parentdir/newdir:递归创建多级目录(包括父目录)。mkdir -m 755 newdir:创建目录并设置权限(rwxr-xr-x)。
touch命令:创建空文件或更新文件时间
touch newfile.txt:创建空文件。touch -a file.txt:仅更新文件的访问时间。touch -m file.txt:仅更新文件的修改时间。
echo命令:向文件中添加内容
echo "Hello World" > file.txt覆盖写入文件(若文件不存在则创建)。echo "Hello World" >> file.txt追加到文件末尾。echo -e "Line1\nLine2" > file.txt:写入多行内容(-e支持转义字符)。
tee命令:同时输出到文件和终端
echo "test" | tee file.txt写入文件并在终端显示。echo "append" | tee -a file.txt并显示。
修改(Update)命令:编辑文件与属性
修改操作包括更新文件内容、更改权限、所有者或移动文件位置。
文本编辑器:直接修改文件内容
nano filename:简单易用的命令行编辑器。vim filename:功能强大的编辑器,需学习基本命令(如i进入编辑模式,wq保存退出)。
chmod命令:修改文件权限
chmod 755 filename:设置权限为所有者可读写执行,其他用户可读执行。chmod u+x filename:为所有者添加执行权限。chmod go-w filename:移除组用户和其他用户的写权限。
chown命令:修改文件所有者
chown user:group filename:同时修改所有者和所属组。chown -R user /path:递归修改目录及其内容的所有者。
mv命令:移动或重命名文件/目录
mv oldname newname:重命名文件或目录。mv /path/to/file /new/location/:移动文件到新位置。mv -i filename.txt ../:移动前提示确认(覆盖已存在文件)。
cp命令:复制文件或目录
cp source.txt dest.txt:复制文件。cp -r /source/dir /dest/dir:递归复制目录(需加-r)。cp -p source.txt dest.txt:保留文件权限、时间戳等属性。
删除(Delete)命令:移除文件与目录
删除操作需谨慎,尤其是使用rm -rf时,数据通常无法恢复。
rm命令:删除文件或目录
rm filename.txt:删除文件(需确认)。rm -f filename.txt:强制删除,不提示确认。rm -r directory/:递归删除目录及其内容(需逐个确认)。rm -rf directory/:强制递归删除(危险操作,慎用)。
rmdir命令:删除空目录
rmdir emptydir:仅能删除空目录,非空目录需用rm -r。
常用命令对比表格
| 操作类型 | 命令 | 常用选项 | 功能说明 |
|---|---|---|---|
| 查询 | ls | -l, -a, -h, -R | 列出目录内容,显示详细信息 |
| cat | -n | 查看文件内容 | |
| find | -name, -type, -size | 按条件查找文件 | |
| 增加 | mkdir | -p, -m | 创建目录(含多级和权限设置) |
| touch | -a, -m | 创建空文件或更新时间 | |
| echo | >, >> | 写入或追加内容到文件 | |
| 修改 | vim/nano | 编辑文件内容 | |
| chmod | 755, u+x, go-w | 修改文件权限 | |
| mv | -i | 移动或重命名文件/目录 | |
| 删除 | rm | -f, -r, -rf | 删除文件或目录(强制/递归) |
| rmdir | 删除空目录 |
相关问答FAQs
Q1: 如何批量重命名文件?
A1: 可以结合mv和循环命令实现,例如使用for循环将当前目录下所有.txt文件扩展名改为.bak:
for file in *.txt; do mv "$file" "${file%.txt}.bak"; done或使用rename命令(需安装):
rename 's/\.txt$/\.bak/' *.txt
Q2: 如何查看文件中的特定行(如第10-20行)?
A2: 可以组合使用sed或awk命令,
sed -n '10,20p' filename:显示文件第10到20行。awk 'NR>=10 && NR<=20' filename:通过行号(NR)筛选指定行。
或使用head和tail组合:head -n 20 filename | tail -n +11
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/397433.html<
