资讯详情

Linux基础命令--文件管理

Linux命令大全-文件管理


文章目录


1. cat 命令:连接文件并打印输出到标准设备

语法

cat [-AbeEnstTuv] [--help] [--version] fileName 

参数说明

  • -n 从1开始编号所有输出行
  • -b 和-n相似,只是-b编号编号空白行
  • -s 遇到连续两行以上的空白行时,将空白行合并为空白行输出
  • -v 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
  • -E 输出的每一行最后打印$
  • -T 将 TAB 字符显示为 ^I
  • -A --show-all:等价于 -vET
  • -e 等价于"-vE"选项
  • -t 等价于"-vT"选项

实例

把 test01.txt 加上行号后输入的文档内容 test02.txt 本文档:

cat -n test01.txt > test02.txt 

把 test01.txt和 test02.txt将行号添加到文档内容中(空白行不加) test03.txt文档里:

cat -n test01.txt test02.txt >> test03.txt    

清空当前目录 tet.txt 文档内容:

cat /dev/null >> test.txt

cat 制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

OUTFILE:指输出的镜像文件名 IMG_FILE :指镜像文件 若从镜像文件写回 device 时,device 容量需与相当 通常用制作开机磁片

2. chmod命令:控制用户对文件的权限

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]
  • u 表示该文件的拥有者
  • g表示与该文件的拥有者属于同一个群体(group)者
  • o 表示其他以外的人
  • a 表示这三者皆是

  • + 表示增加权限
  • - 表示取消权限
  • = 表示唯一设定权限

  • r 表示可读取
  • w 表示可写入
  • x 表示可执行
  • X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行

  • -c 若该文件权限确实已经更改,才显示其更改动作
  • -f 若该文件权限无法被更改也不要显示错误讯息
  • -v 显示权限变更的详细资料
  • -R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
  • --help 显示辅助说明
  • --version 显示版本

八进制语法

# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r– 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 –x 001
0 000

实例

将目前目录下的所有文件与子目录皆设为任何人可读取

chmod 777 file

对file的所有者和用户组设置读取权限,为其他用户设置只读权限

chmod 774 file

对file的所有者和用户组设置读写权限, 为其他用户设置读权限

chmod 664 file

3. chown 命令用于设置文件所有者和文件关联组

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

参数说明

  • -user : 新的文件拥有者的使用者 ID
  • -group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • --help : 显示辅助说明
  • --version : 显示版本

实例

把 test01.txt 的所有者设置 root:

chown root test01.txt

将文件 test02.txt 的拥有者设为 Anna,群体的使用者 gamgroup :

chown Anna:gamgorup test02.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 Anna,群体的使用者 gamgroup:

chown -R Anna:gamgroup *

4.cmp 命令 用于比较两个文件是否有差异

语法

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]

参数说明

  • -c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符
  • -i<字符数目>或--ignore-initial=<字符数目>  指定一个数目
  • -l--verbose  标示出所有不一样的地方
  • -s--quiet--silent  不显示错误信息
  • -v--version  显示版本信息
  • --help 在线帮助

实例

确定test01.txt和test02.txt是否相同

cmp test01.txt test02.txt

5. diff 命令用于比较文件的差异

语法

diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

参数说明

  • -<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
  • -a--text  diff预设只会逐行比较文本文件。
  • -b--ignore-space-change  不检查空格字符的不同。
  • -B--ignore-blank-lines  不检查空白行。
  • -c  显示全部内文,并标出不同之处。
  • -C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。
  • -d--minimal  使用不同的演算法,以较小的单位来做比较。
  • -D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。
  • -e--ed  此参数的输出格式可用于ed的script文件。
  • -f-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
  • -H--speed-large-files  比较大文件时,可加快速度。
  • -I<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
  • -i--ignore-case  不检查大小写的不同。
  • -l--paginate  将结果交由pr程序来分页。
  • -n--rcs  将比较结果以RCS的格式来显示。
  • -N--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
  • -p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
  • -P--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
  • -q--brief  仅显示有无差异,不显示详细的信息。
  • -r--recursive  比较子目录中的文件。
  • -s--report-identical-files  若没有发现任何差异,仍然显示信息。
  • -S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。
  • -t--expand-tabs  在输出时,将tab字符展开。
  • -T--initial-tab  在每行前面加上tab字符以便对齐。
  • -u,-U<列数>或–unified=<列数>  以合并的方式来显示文件内容的不同。
  • -v--version  显示版本信息。
  • -w--ignore-all-space  忽略全部的空格字符。
  • -W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。
  • -x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
  • -X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
  • -y--side-by-side  以并列的方式显示文件的异同之处。
  • --help  显示帮助。
  • --left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
  • --suppress-common-lines  在使用-y参数时,仅显示不同之处。

实例

比较docker-compose.yml 和 docker-compose1.yml文件

diff docker-compose.yml docker-compose1.yml

如上命令的结果 上面的"12c12"两个文件在12行内容有所不同;

并排格式输出

diff test001.txt test.txt -y

  • |表示前后2个文件内容有不同
  • <表示后面文件比前面文件少了1行内容
  • >表示后面文件比前面文件多了1行内容

6. file 命令用于辨识文件类型

语法

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

参数说明

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件

实例

显示test.txt文件类型

file test.txt

显示test.txt 文件类型,但不显示文件名称

file -b test.txt

显示test.txt MIME类别,但不显示文件名称

file -bi test.txt

7.find 命令用来在指定目录下查找文件

语法

find   path   -option   [   -print ]   [ -exec   -ok   command ]   { 
        } \;

参数说明

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

  • -amin n : 在过去 n 分钟内被读取过

  • -anewer file : 比文件 file 更晚被读取过的文件

  • -atime n : 在过去 n 天内被读取过的文件

  • -cmin n : 在过去 n 分钟内被修改过

  • -cnewer file :比文件 file 更新的文件

  • -ctime n : 在过去 n 天内创建的文件

  • -mtime n : 在过去 n 天内修改过的文件

  • -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

  • -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

  • -type c : 文件类型是 c 的文件。

  • d: 目录

  • c: 字型装置文件

  • b: 区块装置文件

  • p: 具名贮列

  • f: 一般文件

  • l: 符号连结

  • s: socket

  • -pid n : process id 是 n 的文件

实例

将当前目录及其子目录下所有文件后缀为 .txt 的文件列出来

find . -name "*.txt"

将当前目录及其子目录中的所有文件列出

find . -type f

将当前目录及其子目录下所有最近 20 天内更新过的文件列出

find . -ctime  20

8.less 命令 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页

语法

less [参数] 文件

参数说明

  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将"tab"键显示为规定的数字空格
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

键盘操作

  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

实例

查看test.txt

less test.txt

ps查看进程信息并通过less分页显示

ps -ef |less

查看命令历史使用记录并通过less分页显示

history | less

9.locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

一般情况我们只需要输入 locate fileName 即可查找指定文件

语法

locate [-d ][--help][--version][范本样式...]

参数说明

  • -b, 仅匹配路径名的基本名称
  • -c – 只输出找到的数量
  • -d, --database DBPATH – 使用 DBPATH 指定的数据库,而不是默认数据/var/lib/mlocate/mlocate.db
  • -e, --existing – 仅打印当前现有文件的条目
  • -1 – 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  • -0, --null – 在输出上带有NUL的单独条目
  • -S, --statistics – 不搜索条目,打印有关每个数据库的统计信息
  • -q – 安静模式,不会显示任何错误讯息。
  • -P, --nofollow, -H – 检查文件存在时不要遵循尾随的符号链接
  • -l, --limit, -n LIMIT – 将输出(或计数)限制为LIMIT个条目
  • -n – 至多显示 n个输出。
  • -m, --mmap – 被忽略,为了向后兼容
  • -r, --regexp REGEXP – 使用基本正则表达式
  • --regex – 使用扩展正则表达式
  • -q, --quiet – 安静模式,不会显示任何错误讯息
  • -s, --stdio – 被忽略,为了向后兼容
  • -o – 指定资料库存的名称。
  • -h, --help – 显示帮助
  • -i, --ignore-case – 忽略大小写
  • -V, --version – 显示版本信息

实例

全文查找 test 文件

locate test

10. more命令 类似 cat

不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h

参数说明

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.],如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c-p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数

实例

逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示

more -s test.txt

从第 20 行开始,每页显示20行显示 test.txt 之文档内容

more +20  -20 test.txt

11.mmove 命令 移动文件或目录,更改名称

语法

mmove [源文件或目录...][目标文件或目录]

参数说明

  • [源文件或目录…]: 执行操作的源文件或目录路径
  • [目标文件或目录]: 执行操作后的目标文件或目录路径

实例

使用指令mmove将文件"test.txt"移动到目录"test"中

mmove test.txt test

12. mv 命令 用来为文件或目录改名、或将文件或目录移入其它位置

语法

mv [options] source dest
mv [options] source... directory

参数说明

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作

实例

将文件 aaa 改名为 bbb :

mv aaa bbb

13. paset 命令 用于合并文件的列

语法

paste [-s][-d <间隔字符>][--help][--version][文件...]

参数说明

-`-d<间隔字符>或–delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。

  • -s或–serial  串列进行而非平行处理。`d<间隔字符>或–delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。

实例

将文件"test"、“test01” 进行合并

paste test test01

14. whereis 查找文件

语法

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
  • -b  只查找二进制文件。
  • -B<目录>  只在设置的目录下查找二进制文件。
  • -f  不显示文件名前的路径名称。
  • -m  只查找说明文件。
  • -M<目录>  只在设置的目录下查找说明文件。
  • -s  只查找原始代码文件。
  • -S<目录>  只在设置的目录下查找原始代码文件。
  • -u  查找不包含指定类型的文件。

实例

查找test的位置

whereis test

15. rm 命令用于删除一个文件或者目录

语法

rm [options] name...

参数说明

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

实例

删除当前目录下的test文件夹

rm -rf test

删除当前目录下的所有文件及文件夹,并逐一询问

rm -r *

16. split 文件分割

语法

split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

参数说明

  • -<行数> : 指定每多少行切成一个小文件
  • -b<字节> : 指定每多少字节切成一个小文件
  • -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
  • [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

实例

将文件"test"每10行切割成一个文件

split -10 test.txt

将文件"test" 每10行分割成一个文件,并设置文件前缀未z

split -10 test.txt z

17. touch 修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件

语法

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数说明

  • -a 改变档案的读取时间记录。
  • -m 改变档案的修改时间记录。
  • -c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
  • -f 不使用,是为了与其他 unix 系统的相容性而保留。
  • -r 使用参考档的时间记录,与 --file 的效果一样。
  • -d 设定时间与日期,可以使用各种不同的格式。
  • -t 设定档案的时间记录,格式与 date 指令相同。
  • --no-create 不会建立新档案。

实例

新建一个test文件

touch test

修改test文件的时间属性为当前系统时间

touch test
ls -l test #查看文件时间属性

18. cp 用于复制文件或目录

语法

cp [options] source dest 或 cp [options] source... directory

参数说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

实例

复制test到test2文件夹下

cp -r  test/ test2

标签: 磁片电容e221

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台