Linux 文件与目录操作命令
本文介绍了Linux系统中常用的文件操作命令。主要内容包括:1. 文件查看命令(cat/more/less/head/tail/nl)的功能和用法;2. 目录创建命令mkdir的使用方法;3. 文件创建命令(touch/echo)的操作方式;4. 文件复制、移动、删除命令(cp/mv/rm)的选项说明;5. 其他实用命令如alias、stat、tree、dd、ln和file的功能介绍。文章详细讲解
Linux一切皆文件
1.1、cat命令
cat 命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
语法: cat [选项] [文件]...
功能:
-
一次显示整个文件:cat filename
-
从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
-
将几个文件合并为一个文件:cat file1 file2 > file3
-
追加内容到指定文件
[root@www ~]# cat <<e >> 3.txt 123456 e
重定向符号:
1、正确重定向
##覆盖重定向 > ##追加重定向 >>
2、错误重定向
##覆盖重定向 2> ##追加重定向 2>>
3、混合重定向
##覆盖重定向 &> ##追加重定向 &>>
选项:
| -n | 显示行号。 |
| -v | 显示不可打印的字符。 |
| -e | 在输出的行尾添加制表符和换行符。 |
| -b | 在输出的行尾添加空格而不是制表符和换行符。 |
| -A | 类似于 -v 和 -e,但只显示不可打印的字符和行尾的空格。 |
| -t | 仅显示每行的第一个非空格字符。 |
| -f | 按行分割文件,并将每一行分别发送到标准输出。 |
| -l | 仅显示当前行的行号。 |
| -r | 在输出的行尾添加回车符和换行符。 |
| -s | 在连续的空白字符中输出一个空格。 |
1.2、more命令
用于逐页查看文本文件内容的命令。当需要查看大型文件时,more 命令能够按页显示文件内容,允许用户逐页浏览文件内容。
语法:more [选项] [文件名]
操作:
| 操作 | 作用 |
|---|---|
| 空格键 | 向下翻动一页。 |
| Enter键 | 向下翻动一行。 |
| q | 退出 more 命令。 |
| /pattern | 在文件中搜索指定的模式(pattern)。 |
| :n | 跳转到第 n 行。 |
| :f | 显示文件名和当前行号。 |
1.3、less命令
看文本文件内容的命令,类似于 more 命令,但提供了更多的功能和操作选项。less 命令可以让用户在文件中进行搜索、前后翻页、跳转到指定行等操作。
语法: less [选项] [文件名]
操作:
| 操作 | 作用 |
|---|---|
| 空格键 | 向下滚动一屏。 |
| Page Up 或 b | 向上滚动一屏。 |
| Page Down 或 空格键 | 向下滚动一屏。 |
| /pattern | 在文件中搜索指定模式(pattern)。 |
| n | 找到下一个匹配的搜索结果。 |
| N | 找到上一个匹配的搜索结果。 |
| g | 跳转到文件的起始处。 |
| G | 跳转到文件的末尾。 |
| q | 退出 less 命令。 |
1.4、head命令
head 命令用于显示文件的开头部分,默认情况下显示文件的前 10 行内容。head 命令在查看文件的头部信息时非常有用,尤其适合用于快速查看文件的开头几行内容。
语法: head [选项] [文件名]
管道符:
将前一命令的结果作为后一命令的输入进行再次处理;相当于流水线工作。
连接前后两个命令结合使用 传递数据流
[root@www ~]# cat -n anaconda-ks.cfg | head -1
选项:
| 选项 | 作用 |
|---|---|
| -q | 隐藏文件名 |
| -v | 显示文件名 |
| -c<字节> | 显示字节数 |
| -n<行数> | 显示的行数 |
1.5、tail命令
tail 命令用于查看文件的尾部内容,默认情况下显示文件的最后 10 行。tail 命令在查看日志文件或需要关注文件末尾信息时非常有用。。使用 tail -f 选项可以实时监控文件的变化,这对于监控系统日志或等待文件尾部的特定信息非常方便。
语法: tail [选项] [文件名]
选项:
| 选项 | 作用 |
|---|---|
| -f | 循环读取,实时监控文件内容的变化 |
| -q | 不显示处理信息 |
| -v | 显示详细的处理信息 |
| -c<数目> | 显示的字节数 |
| -n<行数> | 显示行数 |
1.6、nl命令
nl 命令是 Linux 和类 Unix 系统中的一个用于将文本文件中的行号添加到内容的命令。它主要用于向文本文件中的每一行添加行号,便于阅读和查找
语法: nl [options] [file]
选项:
| 选项 | 作用 |
|---|---|
| -b | 指定要将行号添加到的行。 |
| -b a | 添加行号到非空行。 |
| -b t | 添加行号到所有行。 |
| -b n | 不添加行号到任何行。 |
| -n | 设置行号的开始值。 |
| -w | 指定行号字段的宽度。 |
| -s | 设置行号与文本之间的分隔符。 |
案例:
-
将行号添加到文件中的所有行,并将行号输出到标准输出:nl file.txt
-
将行号添加到文件中的非空行,并使用制表符作为分隔符:nl -b a -s $'\t' file.txt
-
将行号添加到文件中的所有行,从指定的行号开始: nl -n 100 file.txt
-
设置行号字段的宽度为 3 个字符,并将行号添加到所有行: nl -w 3 file.txt
2、创建目录命令
mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。如果需要创建多级目录,可以使用通配符 * 或多个目录名。还支持使用{}来进行创建多个目录。
语法: mkdir [选项] 目录名
选项:
| 选项 | 作用 |
|---|---|
| -p | 递归创建目录,如果父目录不存在也会创建。 |
| -m | 设置新目录的权限。 |
| -v | 显示详细信息,包括正在创建的目录和已使用的文件系统类型。 |
3、创建文件命令
3.1、touch命令
用于创建一个新的空文件或修改现有文件的时间戳。它的全称是 "touch file",即触摸文件。
语法: touch [选项]... 文件...
选项:
| 选项 | 作用 |
|---|---|
| -a 或 --time=access | 如果文件不存在,创建一个新文件。同时更新访问时间和修改时间。 |
| -m 或 --time=modify | 仅更新文件的修改时间。 |
| -t 或 --time=date | 使用指定的日期和时间更新文件的访问和修改时间。 |
3.2、echo命令
用于在终端输出指定的文本内容。
语法: echo [选项] 文本内容
选项:
| 选项 | 作用 |
|---|---|
| -n | 在输出内容后不换行。 |
| -e |
启用转义字符的解析。“\"转义符号;\n:换行;\r:回车;\t:水平制表符(tab) |
查看文件的时间戳: stat 文件名称
[root@c2407 c2407-3]# stat f1.txt 文件:"f1.txt" 大小:0 块:0 IO 块:4096 普通空文件 设备:fd00h/64768d Inode:1839635 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2024-08-02 09:23:49.110424207 +0800 最近更改:2024-08-02 09:23:21.526489727 +0800 最近改动:2024-08-02 09:23:21.526489727 +0800 创建时间:-
4、文件或目录复制命令
cp命令用来复制文件和目录的命令
语法: cp [options] source destination
选项:
| 选项 | 作用 |
|---|---|
| -i(交互式) | 如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续。 |
| -n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作。 |
| -r或-R(递归) | 用于复制目录以及目录内所有子目录和文件。 |
| -p(保留属性) | 复制文件的同时保留源文件的属性如权限和时间戳。 |
| -v(详细模式) | 显示详细的复制过程信息。 |
5、文件或目录移动命令
mv命令用来移动文件或目录,或者重命名文件和目录的命令。
语法: mv [options] source destination
选项:
| 选项 | 作用 |
|---|---|
| -i(交互式) | 如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续。 |
| -n(不覆盖) | 在目标位置存在文件时,不会覆盖该文件,即不会进行移动或重命名操作。 |
| -v(详细模式) | 显示详细的移动或重命名过程信息。 |
6、文件或目录删除命令
rm命令用于删除文件的命令。它的全称是 "remove",意思是 "删除"。
语法: rm [options] file ...
选项:
| 选项 | 作用 |
|---|---|
| -i 或 --interactive | 在删除之前,显示每个文件是否确认删除。 |
| -f 或 --force | 强制删除,即使文件正在被使用,或者存在打开的文件描述符。 |
| -r 或 --recursive | 递归地删除目录及其内容。 |
| -v 或 --verbose | 详细模式,显示删除的每个文件。 |
7、别名命令
用于创建或显示当前目录下的别名。别名是一种用户定义的命令或函数,可以用来简化复杂的命令序列。使用unalias name可以删除一个别名。
语法: alias [options] name=command
选项:
| 选项 | 作用 |
|---|---|
| -p | 显示当前目录下的所有已定义的别名列表。 |
8、文件属性查看命令
stat 命令是 Unix 和 Linux 系统中的一个实用程序,用于显示关于文件的状态信息。stat 命令提供比 ls -l 更详细的文件信息,包括文件的大小、创建时间、最后访问时间、最后修改时间等。
语法: stat [options] file
选项:
| 选项 | 作用 |
|---|---|
| -c 或 --format | 指定输出信息的格式。 |
| -f 或 --file-system | 显示文件系统级别的。 |
| -t 或 --terse | 以更紧凑的方式显示输出信息。 |
| --all 或 -a | 显示所有可用的信息。 |
| --dereference | 跟随符号链接。 |
最近访问:2025-08-01 09:50:02.977821719 +0800 #看了文件
最近更改:2025-08-01 09:50:22.142591350 +0800 #内容变化
最近改动:2025-08-01 09:50:45.594309455 +0800 #属性变化和内容变化
创建时间:2025-07-31 10:57:44.200429395 +0800 #不会动
9、目录结构查看命令
tree 命令是一个用于以树状结构显示目录及其内容的实用程序,常用于显示文件系统的层次结构。tree 命令会递归地列出指定目录下的所有子目录和文件,并以树的形式展示它们之间的关系。
语法: tree [options] [directory]
选项:
| 选项 | 作用 |
|---|---|
| -L | 指定要显示的层级深度。 |
| -d | 只显示目录,不显示文件。 |
| -f | 显示完整路径。 |
| -a | 显示所有文件和目录,包括隐藏的。 |
| -I | 排除符合模式的文件或目录。 |
10、dd命令
用于复制文件和转换数据。它用于将源文件复制到目标文件,或者用于在目标文件上进行数据转换。
功能:
-
生成块文件
-
复制文件内容
-
测试 I/O性能
语法: dd [选项] [输出选项] [输入选项]
选项:
| 选项 | 作用 |
|---|---|
| if=filename | 指定输入文件。 |
| of=filename | 指定输出文件。 |
| bs=size | 指定块大小。 |
| count=num | 指定要复制的块数。 |
| conv=参数 | 进行数据转换,例如tec进行techeus格式转换,auto允许尽可能多的转换(这对于大量数据是安全的)。 |
| skip=num | 跳过第一个num块。 |
| status=progress | 显示进度信息。 |
11、链接命令
ln 命令用于在文件系统中创建链接(links)。链接分为两种类型:硬链接(hard link)和符号链接(symbolic link)。
硬链接(hard link):(目录不允许创建硬链接)
-
硬链接是文件系统中的一个目录条目,它指向另一个文件的数据块。
-
硬链接和原始文件共享同一个 inode,因此对文件的修改会影响到所有硬链接。
-
硬链接不能跨越文件系统边界。
符号(软)链接(symbolic link):
-
符号链接是一个特殊的文件,其内容是指向另一个文件的路径。
-
符号链接和原始文件不共享 inode,因此删除原始文件后,符号链接仍然存在,但无法访问。
-
符号链接可以跨越文件系统边界。
特点:
软连接: 文件:Inode不同;目录Inode相同
硬链接:文件:Inode相同
语法: ln [options] source destination
选项:
| 选项 | 作用 |
|---|---|
| -s 或 --symbolic | 创建符号链接而不是硬链接。 |
| -f 或 --force | 如果目标文件已存在,则覆盖它。 |
| -i 或 --interactive | 在覆盖目标文件之前询问用户。 |
| -p 或 --preserve | 保留源文件的属性,如权限和时间戳。 |
12、file命令
在UNIX和Linux系统中,file命令用于确定文件的类型或属性。它可以提供有关文件的内容、文件系统类型、文件权限等信息。
语法: file [选项] 文件名
选项:
| 选项 | 作用 |
|---|---|
-b |
以二进制形式输出文件类型信息。 |
-f |
仅显示文件类型,不显示其他信息。 |
-i |
以人类可读的格式显示文件类型。 |
-L |
对符号链接进行特殊处理,查看链接指向的真实文件。 |
更多推荐



所有评论(0)