(请关注,本文将不断更新...,添加实用技巧和操作实例)
在 Linux 系统中,熟练掌握各种文件操作命令是非常重要的。下面为大家详细介绍50 个 Linux 系统中常用的文件操作命令。
一、文件查看类命令
1. ls
ls
命令用于列出目录内容。
用法:ls [选项] [目录或文件]
选项解释:
-l
:以长格式显示文件信息,包括权限、所有者、大小、修改时间等。-a
:显示所有文件,包括隐藏文件。-h
:以人类可读的格式显示文件大小。-R
:递归显示目录及其子目录的内容。
举例:ls -lah /home
将以长格式、显示隐藏文件并以人类可读格式列出/home 目录下的内容。
2. cat
cat
命令用于连接文件并打印到标准输出。
用法:cat [选项] 文件名
举例:cat file.txt
查看 file.txt 的内容。
3. more
more
命令用于分页显示文件内容。
用法:more 文件名
举例:more anaconda-ks.cfg
分页查看一个大文件的内容。
按空格键显示下一页内容
按空格键显示下一页内容
4. less
less
命令提供了更强大的交互式文件查看功能。
用法:less 文件名
举例:less log.txt
可以上下滚动查看 log.txt 的内容。
5. head
head
命令用于显示文件的开头几行内容。
用法:head [选项] 文件名
选项解释:
-n
:指定显示的行数。
举例:head -n 10 file.txt
显示 file.txt 的前 10 行内容。
6. tail
tail
命令用于显示文件的末尾几行内容。
用法:tail [选项] 文件名
选项解释:
-n
:指定显示的行数。-f
:实时跟踪文件的增长,常用于查看日志文件。
举例:tail -n 20 file.txt
显示 file.txt 的后 20 行内容;tail -f log.txt
实时查看日志文件的新增内容。
二、文件操作类命令
7. cp
cp
命令用于将源文件或目录复制到指定的目标位置。
用法:cp [选项] 源文件 目标文件
或cp [选项] 源目录 目标目录
选项解释:
-r
:递归复制目录及其内容。-i
:在覆盖目标文件之前询问用户确认。-v
:显示详细的复制过程。
举例:cp file1.txt file2.txt
复制文件;cp -r dir1 dir2
复制目录。
8. mv
mv
命令可以移动文件或目录到新位置,也可用于重命名文件或目录。
用法:mv [选项] 源文件 目标文件
或mv [选项] 源目录 目标目录
选项解释:
-i
:在覆盖目标文件之前询问用户确认。-v
:显示详细的移动过程。
举例:mv old.txt new.txt
重命名文件;mv newdir move
移动文件及文件夹。
9. rm
rm
命令用于删除文件或目录。
用法:rm [选项] 文件或目录
选项解释:
-r
:递归删除目录及其内容。-i
:在删除每个文件之前询问用户确认。-f
:强制删除,不询问用户确认。
举例:rm file.txt
删除文件;rm -r dir
删除目录。
10. touch
touch
命令用于创建一个新的空文件或更新现有文件的时间戳。
用法:touch 文件名
举例:touch newfile.txt
创建一个名为 newfile.txt 的空文件。
11. mkdir
mkdir
命令用于创建新的目录。
用法:mkdir [选项] 目录名
选项解释:
-p
:递归创建目录,如果上级目录不存在,会一并创建。
举例:mkdir new_folder
创建一个名为 new_folder 的目录;mkdir -p parent/child
递归创建 parent 目录及其中的 child 目录。
12. rmdir
rmdir
命令用于删除空目录。
用法:rmdir [选项] 目录名
举例:rmdir empty_dir
删除名为 empty_dir 的空目录。
三、文件权限管理类命令
13. chmod
chmod
命令用于改变文件或目录的权限。
用法:chmod [选项] 权限模式 文件名或目录名
举例:chmod u+rwx new1.txt
给文件的所有者添加读、写、执行权限。
14. chown
chown
命令用于改变文件或目录的所有者。
用法:chown [选项] 所有者[:组] 文件名或目录名
举例:chown user:group new1.txt
将 new1.txt 的所有者改为 user,所属组改为 group。
15. chgrp
chgrp
命令用于改变文件或目录的所属组。
用法:chgrp [选项] 组名 文件名或目录名
举例:chgrp newgroup file.txt
将 file.txt 的所属组改为 newgroup。
四、文件搜索类命令
16. find
find
命令用于在指定目录下查找文件。
用法:find 目录 [选项] 表达式
举例:find /home -name "*.txt"
在/home 目录下查找所有扩展名为.txt 的文件。
17. grep
grep
命令用于在文件中搜索指定的模式。
用法:grep [选项] 模式 文件名
举例:grep "sy" anaconda-ks.cfg
在 log.txt 文件中搜索包含"sy"的行。
18. locate
locate
命令用于快速查找文件。它通过数据库进行搜索,速度较快。
用法:locate 文件名
举例:locate myfile.txt
查找名为 myfile.txt 的文件。
用这个命令之前,先请先运行一下 updatedb,更新文件目录数据库。
五、文件压缩和解压缩类命令
19. tar
tar
命令用于打包和解压文件。
用法:
- 打包:
tar [选项] 打包文件名 源文件或目录
- 解压:
tar [选项] 打包文件名 [-C 目标目录]
选项解释: -c
:创建打包文件。-x
:解包文件。-v
:显示详细过程。-z
:使用 gzip 压缩。-j
:使用 bzip2 压缩。
举例:tar -cvf archive.tar file1.txt file2.txt
打包两个文件;tar -xvf archive.tar
解包文件。
20. gzip
gzip
命令用于压缩文件。
用法:gzip 文件名
用法:gzip [选项]... [文件]...
:对文件进行压缩或解压缩(默认情况下,在原地压缩文件)。
长选项的必填参数对于短选项同样是必填的。
选项说明:
-c
或--stdout
:将结果输出到标准输出,保持原始文件不变。-d
或--decompress
:进行解压缩操作。-f
或--force
:强制覆盖输出文件并压缩链接。-h
或--help
:显示此帮助信息。-k
或--keep
:保留(不删除)输入文件。-l
或--list
:列出压缩文件的内容。-L
或--license
:显示软件许可证。-n
或--no-name
:不保存或恢复原始文件名和时间戳。-N
或--name
:保存或恢复原始文件名和时间戳。-q
或--quiet
:抑制所有警告信息。-r
或--recursive
:对目录进行递归操作。--rsyncable
:创建对rsync
友好的存档。-S
或--suffix=SUF
:在压缩文件上使用指定后缀SUF
。--synchronous
:同步输出(如果系统崩溃更安全,但速度较慢)。-t
或--test
:测试压缩文件的完整性。-v
或--verbose
:详细模式。-V
或--version
:显示版本号。-1
或--fast
:以更快的速度压缩。-9
或--best
:以更好的质量进行压缩。
如果没有指定文件,或者文件为 “-”:
读取标准输入。
举例:gzip new1.txt
压缩new1.txt 文件。
21. gunzip
gunzip
命令用于解压缩 gzip 压缩的文件。
用法:gunzip 文件名.gz
-
-c, --stdout
:将输出写入标准输出,保持原始文件不变。这意味着你可以将压缩后的内容重定向到另一个文件,而不是直接替换原始文件。 -
-d, --decompress
:解压缩文件。这是用来解压.gz
文件的选项。 -
-f, --force
:强制覆盖输出文件,并压缩链接。如果目标文件已存在,gzip
会询问是否覆盖,使用此选项将自动覆盖而不提示。 -
-h, --help
:显示这个帮助信息。 -
-k, --keep
:保留(不删除)输入文件。默认情况下,gzip
会删除被压缩的原始文件。使用此选项可以保留原始文件。 -
-l, --list
:列出压缩文件的内容。这不会解压缩文件,只是显示文件内的信息。 -
-L, --license
:显示软件许可证。 -
-n, --no-name
:不保存或恢复原始文件名和时间戳。 -
-N, --name
:保存或恢复原始文件名和时间戳。这是默认行为,但如果你使用了-n
选项,可以通过-N
来恢复。 -
-q, --quiet
:抑制所有警告信息。 -
-r, --recursive
:递归地对目录进行操作。这意味着gzip
会进入目录并压缩其中的所有文件。 -
--rsyncable
:创建 rsync 友好的归档文件。这可以优化使用 rsync 进行文件传输时的性能。 -
-S, --suffix=SUF
:在压缩文件上使用指定的后缀SUF
。默认情况下,gzip
使用.gz
作为后缀。 -
--synchronous
:同步输出(如果系统崩溃,更安全,但更慢)。这可以确保数据在写入磁盘时不会丢失。 -
-t, --test
:测试压缩文件的完整性。这不会解压缩文件,只是检查文件是否损坏。 -
-v, --verbose
:详细模式。显示更多关于gzip
正在做什么的信息。 -
-V, --version
:显示版本号。 -
-1, --fast
:更快地进行压缩。这可能会牺牲一些压缩率。 -
-9, --best
:更好地进行压缩。这可能会增加压缩时间,但通常会得到更小的文件。
举例:gunzip new1.txt.gz
解压缩 new1.txt.gz
文件。
22. bzip2
bzip2
命令用于压缩文件,压缩比通常比 gzip 更高。
用法:bzip2 文件名
用法:bzip2 [标志和输入文件可以以任意顺序给出]
选项说明:
-h
或--help
:打印此帮助信息。-d
或--decompress
:强制进行解压缩。-z
或--compress
:强制进行压缩。-k
或--keep
:保留(不删除)输入文件。-f
或--force
:覆盖已存在的输出文件。-t
或--test
:测试压缩文件的完整性。-c
或--stdout
:输出到标准输出。-q
或--quiet
:抑制非关键错误消息。-v
或--verbose
:详细模式(再一个-v
会给出更多信息)。-L
或--license
:显示软件版本和许可证。-V
或--version
:显示软件版本和许可证。-s
或--small
:使用较少的内存(最多 2500k)。-1
到-9
:将块大小设置为 100k 到 900k。--fast
:是-1
的别名。--best
:是-9
的别名。
如果以以下方式调用:
- 作为
bzip2
,默认动作是压缩。 - 作为
bunzip2
,默认动作是解压缩。 - 作为
bzcat
,默认动作是解压缩到标准输出。
如果没有给出文件名:bzip2
从标准输入进行压缩或解压缩到标准输出。可以组合短标志,所以-v -4
与-v4
或-4v
等意思相同。
举例:bzip2 ana.txt
压缩 ana.txt 文件。
23. bunzip2
bunzip2
命令用于解压缩 bzip2 压缩的文件。
用法:bunzip2 文件名.bz2
举例:bunzip2 compressedfile.bz2
解压缩 compressedfile.bz2 文件。
六、其他常用命令
24. pwd
pwd
命令用于显示当前工作目录的绝对路径。
用法:pwd
举例:执行该命令后会显示当前所在的完整路径。
25. cd
cd
命令用于改变当前工作目录。
用法:cd [目录路径]
举例:cd /usr/local
切换到/usr/local 目录。
26. diff
diff
命令用于比较两个文件的差异。
用法:diff [选项]... 文件列表
逐行比较<各文件>。
长选项的必需参数也是相应短选项的必需参数。
--normal 以正常的 diff 方式输出 (默认)
-q, --brief 只有在文件不同时报告
-s, --report-identical-files 当两个一样时仍然显示结果
-c, -C NUM, --context[=NUM] 同时输出 NUM 行(默认为 3 行)的复制上下文内容
-u, -U 数量, --unified[=数量] 输出 <数量>(默认为 3)行一致化上下文
-e, --ed 以 ed script 方式输出
-n, --rcs 以 RCS diff 格式输出
-y, --side-by-side 以两栏的格式输出
-W, --width=数量 每行显示最多 <数量>(默认 130)个字符
--left-column 当有两行相同时只显示左边栏的一行
--suppress-common-lines 当有两行相同时不显示
-p, --show-c-function 显示每个变更位于哪个 C 函数中
-F, --show-function-line=正则 显示匹配给定<正则>表达式的最近一行
--label 标签 使用给定<标签>替代文件名和时间戳
(可以重复)
-t, --expand-tabs 将输出中的 tab 转换成空格
-T, --initial-tab 每行先加上 tab 字符,使 tab 字符可以对齐
--tabsize=数字 TAB 格的宽度,默认为 8 个打印列宽
--suppress-blank-empty 在空的输出行之前去除空白或制表符
-l, --paginate 将输出送至 “pr” 指令来分页
-r, --recursive 连同所有子目录一起比较
--no-dereference 不要跟随符号链接
-N, --new-file 不存在的文件以空文件方式处理
--unidirectional-new-file 若第一文件不存在,以空文件处理
--ignore-file-name-case 忽略文件名大小写的区别
--no-ignore-file-name-case 不忽略文件名大小写的区别
-x, --exclude=模式 排除匹配 <模式> 的文件
-X, --exclude-from=文件 排除所有匹配在<文件>中列出的模式的文件
-S, --starting-file=文件 当比较目录時,由<文件>开始比较
--from-file=文件1 将<文件1>和操作数中的所有文件/目录作比较;
<文件1>可以是目录
--to-file=文件2 将操作数中的所有文件/目录和<文件2>作比较;
<文件2>可以是目录
-i, --ignore-case 忽略文件内容大小写的区别
-E, --ignore-tab-expansion 忽略由制表符宽度造成的差异
-Z, --ignore-trailing-space 忽略每行末端的空格
-b, --ignore-space-change 忽略由空格数不同造成的差异
-w, --ignore-all-space 忽略所有空格
-B, --ignore-blank-lines 忽略任何因空行而造成的差异
-I, --ignore-matching-lines=正则 若某行完全匹配 <正则>,则忽略由该行造成的差异
-a, --text 所有文件都以文本方式处理
--strip-trailing-cr 去除输入内容每行末端的回车(CR)字符
-D, --ifdef=名称 输出的内容以 ‘#ifdef <名称>’ 方式标明差异
--GTYPE-group-format=GFMT 以 GFMT 格式处理 GTYPE 输入行组
--line-format=LFMT 以 LFMT 格式处理每一行资料
--LTYPE-line-format=LFMT 以 LFMT 格式处理 LTYPE 输入的行
这些格式化选项提供对 diff 输出的精细控制,从而泛化 -D/--ifdef。
LTYPE 可以是 “old”、“new” 或 “unchanged”。GTYPE 可以是 LTYPE 的选择
或是 “changed”。
(仅)GFMT 可包括:
%< 该组中每行属于<文件1>的差异
%> 该组中每行属于<文件2>的差异
%= 该组中同时在<文件1>和<文件2>出现的每一行
%[-][宽度][.[精确度]]{doxX}字符 以 printf 格式表示该<字符>代表的内容
大写<字符>表示属于新的文件,小写表示属于旧的文件。<字符>的意义如下:
F 行组中第一行的行号
L 行组中最后一行的行号
N 行数 ( =L-F+1 )
E F-1
M L+1
%(A=B?T:E) 如果 A 等于 B 那么 T 否则 E
(仅)LFMT 可包括:
%L 该行的内容
%l 该行的内容,但不包括结束的换行符
%[-][宽度][.[精确度]]{doxX}n 以 printf 格式表示的输入行号
GFMT 或 LFMT 都可包括:
%% %
%c'C' 单个字符 C
%c'\OOO' 八进制码 OOO 所代表的字符
C 字符 C(处上述转义外的其他字符代表它们自身)
-d, --minimal 尽可能找出最小的差异集
--horizon-lines=数量 保持指定行数的一致前后缀
--speed-large-files 假设文件十分大而且文件中含有许多微小的差异
--color[=何时] 给输出上色;“何时”可以是“never”(从不)、
“always”(总是)或“auto”(自动,默认);
仅指定 --color 与 --color='auto' 效果相同
--palette=调色板 在 --color 选项启用时使用的颜色;<调色板>参数应当是
一个冒号分隔的列表以提供 terminfo capabilities 信息
--help 显示此帮助信息并退出
-v, --version 输出版本信息并退出
<文件列表> 的格式可以是“文件1 文件2”、“目录1 目录2”、“目录 文件”或
“文件 目录”。
如果使用 --from-file 或 --to-file 选项,<文件名> 的格式则不受限制。
如果 FILE 是 “-”,则由标准输入读取内容。
如果输入相同,则退出状态为 0;1 表示输入不同;2 表示有错误产生。
举例:diff file1.txt file2.txt
比较两个文件的内容差异。
27. file
file
命令用于确定文件的类型。
用法:file 文件名
举例:file myfile.txt
确定 myfile.txt 的文件类型。
28. wc
wc
命令用于统计文件的行数、单词数和字节数。
用法:wc [选项] 文件名
选项解释:
-l
:统计行数。-w
:统计单词数。-c
:统计字节数。
举例:wc -l file.txt
统计 file.txt 的行数。
29. sort
sort
命令用于对文件内容进行排序。
用法:sort [选项] 文件名
举例:sort file.txt
对 file.txt 的内容进行排序。
30. uniq
uniq
命令用于去除文件中的重复行。
用法:用法:uniq [选项]... [文件]
从输入(或标准输入)中过滤相邻的匹配行,并写入输出(或标准输出)。如果没有选项,匹配的行将合并到首次出现的位置。
必选参数对长短选项同时适用。
-c, --count:在每行前面加上出现的次数。
-d, --repeated:只打印重复的行,每个组打印一次。
-D:打印所有重复的行。
--all-repeated [=METHOD]:与 -D 类似,但允许用空行分隔组;METHOD={无(默认)、前置、分隔}。
-f, --skip-fields=N:不比较前 N 个字段。
--group [=METHOD]:显示所有项,用空行分隔组;METHOD={分隔(默认)、前置、后置、前后置}。
-i, --ignore-case:在比较时忽略大小写差异。
-s, --skip-chars=N:不比较起始的 N 个字符。
-u, --unique:只输出不重复(内容唯一)的行。
-z, --zero-terminated:以 NUL 空字符而非换行符作为行尾分隔符。
-w, --check-chars=N:对每行第 N 个字符以后的内容不作对照。
--help:显示此帮助信息并退出。
--version:显示版本信息并退出。
如果域中一开始是空白字符(通常包括空格以及制表符),接着是非空白字符,那么域中字符前面的空白字符将被跳过。
提示:“uniq” 不会检查重复的行,除非它们是相邻的行。您也许需要事先对输入进行排序,或者使用 “sort -u” 而不是 “uniq”。
举例:uniq file.txt
去除 file.txt 中的重复行。
31. cut
cut
命令用于从文件的每行中提取特定的字段。
用法:cut [选项]... [文件]...
从每个输入<文件>中输出指定部分到标准输出。如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
-b, --bytes=列表 只选中指定的这些字节
-c, --characters=列表 只选中指定的这些字符
-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-f, --fields=LIST select only these fields; also print any line
that contains no delimiter character, unless
the -s option is specified
-n with -b: don't split multibyte characters
--complement 补全选中的字节、字符或域
-s, --only-delimited 不打印没有包含分界符的行
--output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入
的分界符
-z, --zero-terminated 以 NUL 字符而非换行符作为行尾分隔符
--help 显示此帮助信息并退出
--version 显示版本信息并退出
仅使用f -b, -c 或-f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔
开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。
每种参数格式表示范围如下:
N 从第1个开始数的第N个字节、字符或域
N- 从第N个开始到所在行结束的所有字符、字节或域
N-M 从第N个开始到第M个之间(包括第M个)的所有字符、字节或域
-M 从第1个开始到第M个之间(包括第M个)的所有字符、字节或域
举例:cut -d ':' -f 1 file.txt
从 file.txt 中以’:'为分隔符,提取第一列内容。
32. paste
paste
命令用于将多个文件的内容横向合并。
用法:paste [选项] 文件1 文件2...
将每个指定文件里的各行整合到对应一行里写到标准输出,之间用制表符分隔。如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
-d, --delimiters=列表 改用指定列表里的字符替代制表分隔符
-s, --serial 不使用平行的行目输出模式,而是每个文件占用一行
-z, --zero-terminated 以 NUL 字符而非换行符作为行尾分隔符
--help 显示此帮助信息并退出
--version 显示版本信息并退出
举例:paste file1.txt file2.txt
将 file1.txt 和 file2.txt 的内容横向合并。
33. split
split
命令用于将大文件分割成小文件。
用法:split [选项] 文件名 分割后的文件名前缀
举例:split -l 1000 largefile.txt smallfile
将 largefile.txt 按每行 1000 行分割成多个小文件,文件名前缀为 smallfile。
34. tee
tee
命令用于将标准输入的数据同时写入文件和标准输出。
用法:tee [选项] 文件
举例:echo "Hello" | tee output.txt
将"Hello"写入 output.txt 文件并在终端显示。
35. basename
basename
命令用于去除文件路径中的目录部分,只返回文件名。
用法:basename 路径名
举例:basename /home/user/file.txt
返回"file.txt"。
36. dirname
dirname
命令用于去除文件路径中的文件名部分,只返回目录路径。
用法:dirname 路径名
举例:dirname /home/user/file.txt
返回"/home/user"。
37. ln
ln
命令用于创建文件的链接(硬链接或软链接)。
用法:
- 硬链接:
ln 源文件 目标文件
- 软链接:
ln -s 源文件 目标文件
举例:ln file1.txt file2.txt
创建 file1.txt 的硬链接 file2.txt;ln -s file.txt link.txt
创建 file.txt 的软链接 link.txt。
38. stat
stat
命令用于显示文件或文件系统的详细状态信息。
用法:stat 文件名
举例:stat myfile.txt
显示 myfile.txt 的详细状态信息。
39. dd
dd
命令用于进行数据转换和复制。
用法:dd [选项]
举例:dd if=/dev/sda of=backup.img
将/dev/sda 设备的数据复制到 backup.img 文件中。
40. cmp
cmp
命令用于比较两个文件的内容是否相同。
用法:cmp 文件1 文件2
举例:cmp file1.txt file2.txt
比较两个文件的内容。
41. comm
comm
命令用于比较两个已排序文件的差异,并以特定格式显示。
用法:comm 文件1 文件2
举例:comm sorted_file1.txt sorted_file2.txt
比较两个已排序文件的差异。
42. od
od
命令用于以八进制、十六进制等格式显示文件内容。
用法:od [选项] 文件名
举例:od -tx1 file.txt
以十六进制和 ASCII 码格式显示 file.txt 的内容。
43. hexdump
hexdump
命令用于以十六进制格式显示文件内容。
用法:hexdump [选项] 文件名
举例:hexdump file.txt
以十六进制格式显示 file.txt 的内容。
44. expr
expr
命令用于在命令行上进行表达式求值。
用法:expr 表达式
举例:expr 2 + 3
计算 2 加 3 的结果。
45. awk
awk
是一种强大的文本处理工具,可以进行模式匹配、计算等操作。
用法:awk [选项] '模式{动作}' 文件
举例:awk '{print $1}' file.txt
打印 file.txt 中的每一行的第一个字段。
46. sed
sed
是一种流编辑器,可以对文本进行编辑操作。
用法:sed [选项] '命令' 文件
举例:sed 's/old/new/g' file.txt
将 file.txt 中的所有"old"替换为"new"。
47. tr
tr
命令用于转换或删除字符。
用法:tr [选项] [集合1] [集合2]
举例:tr 'a-z' 'A-Z' < file.txt
将 file.txt 中的小写字母转换为大写字母。
48. expand
expand
命令用于将制表符转换为空格。
用法:expand [选项] 文件
举例:expand file.txt
将 file.txt 中的制表符转换为空格。
49. unexpand
unexpand
命令用于将空格转换为制表符。
用法:unexpand [选项] 文件
举例:unexpand file.txt
将 file.txt 中的空格转换为制表符。
50. iconv
iconv
命令用于字符编码转换。
用法:iconv [选项] 源编码 目标编码 文件
举例:iconv -f UTF-8 -t GBK file.txt > newfile.txt
将 file.txt 从 UTF-8 编码转换为 GBK 编码,并保存为 newfile.txt。
掌握这些 Linux 系统文件操作常用命令,将使你在 Linux 环境下的文件管理和操作更加高效和便捷。不断学习和实践,你会发现 Linux 系统的强大之处。
标签:选项,文件,操作命令,--,用法,file,Linux,openEuler,txt From: https://blog.csdn.net/cgqyw/article/details/142886283