5.文件管理命令
patch
- 功能说明:修补文件。
- 语 法:
patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>][-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>][-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>][--backup-if mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 <修补文件>] 或 path [-p <剥离层级>] < [修补文件]
- 补充说明:
patch
指令让用户利用设置修补文件的方式,修改、更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是 Linux 系统核心的升级方法之一。 - 参 数:
-b
或--backup
:备份每一个原始文件。-B<备份字首字符串>
或--prefix=<备份字首字符串>
:设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。-c
或--context
:把修补数据解译成关联性的差异。-d<工作目录>
或--directory=<工作目录>
:设置工作目录。-D<标示符号>
或--ifdef=<标示符号>
:用指定的符号把改变的地方标示出来。-e
或--ed
:把修补数据解译成ed
指令可用的叙述文件。-E
或--remove-empty-files
:若修补过后输出的文件其内容是一片空白,则移除该文件。-f
或--force
:此参数的效果和指定-t
参数类似,但会假设修补数据的版本为新版本。-F<监别列数>
或--fuzz<监别列数>
:设置监别列数的最大值。-g<控制数值>
或--get=<控制数值>
:设置以RSC
或SCCS
控制修补作业。-i<修补文件>
或--input=<修补文件>
:读取指定的修补文件。-l
或--ignore-whitespace
:忽略修补数据与输入数据的跳格、空格字符。-n
或--normal
:把修补数据解译成一般性的差异。-N
或--forward
:忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使用过。-o<输出文件>
或--output=<输出文件>
:设置输出文件的名称,修补过的文件会以该名称存放。-p<剥离层级>
或--strip=<剥离层级>
:设置欲剥离几层路径名称。-r<拒绝文件>
或--reject-file=<拒绝文件>
:设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej
。-R
或--reverse
:假设修补数据是由新旧文件交换位置而产生。-s
或--quiet
或--silent
:不显示指令执行过程,除非发生错误。-t
或--batch
:自动略过错误,不询问任何问题。-T
或--set-time
:此参数的效果和指定-Z
参数类似,但以本地时间为主。-u
或--unified
:把修补数据解译成一致化的差异。-v
或--version
:显示版本信息。-V<备份方式>
或--version-control=<备份方式>
:用-b
参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用-z
参数变更,当使用-V
参数指定不同备份方式时,也会产生不同字尾的备份字符串。-Y<备份字首字符串>
或--basename-prefix=--<备份字首字符串>
:设置文件备份时,附加在文件基本名称开头的字首字符串。-z<备份字尾字符串>
或--suffix=<备份字尾字符串>
:此参数的效果和指定-B
参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c
,加上"backup/"
字符串后,文件super.c
会备份于/src/linux/fs/backup
目录里。-Z
或--set-utc
:把修补过的文件更改、存取时间设为UTC
。--backup-if-mismatch
:在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件。--binary
:以二进制模式读写数据,而不通过标准输出设备。--help
:在线帮助。--nobackup-if-mismatch
:在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件。--verbose
:详细显示指令的执行过程。
rcp(remote copy)
- 功能说明:远端复制文件或目录。
- 语 法:
rcp [-pr][源文件或目录][目标文件或目录] 或 rcp [-pr][源文件或目录...][目标文件]
- 补充说明:
rcp
指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。 - 参 数:
-p
:保留源文件或目录的属性,包括拥有者、所属群组、权限与时间。-r
:递归处理,将指定目录下的文件与子目录一并处理。
rhmask
- 功能说明:产生与还原加密文件。
- 语 法:
rhmask [加密文件][输出文件] 或 rhmask [-d][加密文件][源文件][输出文件]
- 补充说明:执行
rhmask
指令可制作加密过的文件,方便用户在公开的网络上传输该文件,而不至于被任意盗用。 - 参 数:
-d
:产生加密过的文件。
rm(remove)
- 功能说明:删除文件或目录。
- 语 法:
rm [-dfirv][--help][--version][文件或目录...]
- 补充说明:执行
rm
指令可删除文件或目录,如欲删除目录必须加上参数-r
,否则预设仅会删除文件。 - 参 数:
-d
或--directory
:直接把欲删除的目录的硬连接数据删成 0,删除该目录。-f
或--force
:强制删除文件或目录。-i
或--interactive
:删除既有文件或目录之前先询问用户。-r
或-R
或--recursive
:递归处理,将指定目录下的所有文件及子目录一并处理。-v
或--verbose
:显示指令执行过程。--help
:在线帮助。--version
:显示版本信息。
slocate(secure locate)
- 功能说明:查找文件或目录。
- 语 法:
slocate [-u][--help][--version][-d <目录>][查找的文件]
- 补充说明:
slocate
本身具有一个数据库,里面存放了系统中文件与目录的相关信息。 - 参 数:
-d<目录>
或--database=<目录>
:指定数据库所在的目录。-u
:更新slocate
数据库。--help
:显示帮助。--version
:显示版本信息。
split
- 功能说明:切割文件。
- 语 法:
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
- 补充说明:
split
可将文件切成较小的文件,预设每 1000 行会切成一个小文件。 - 参 数:
-<行数>
或-l<行数>
:指定每多少行就要切成一个小文件。-b<字节>
:指定每多少字就要切成一个小文件。-C<字节>
:与-b
参数类似,但切割时尽量维持每行的完整性。--help
:显示帮助。--version
:显示版本信息。[输出文件名]
:设置切割后文件的前置文件名,split
会自动在前置文件名后再加上编号。
tee
- 功能说明:读取标准输入的数据,并将其内容输出成文件。
- 语 法:
tee [-ai][--help][--version][文件...]
- 补充说明:
tee
指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 - 参 数:
-a
或--append
:附加到既有文件的后面,而非覆盖它。-i-i
或--ignore-interrupts
:忽略中断信号。--help
:在线帮助。--version
:显示版本信息。
tmpwatch(temporary watch)
- 功能说明:删除暂存文件。
- 语 法:
tmpwatch [-afqv][--test][超期时间][目录...]
- 补充说明:执行
tmpwatch
指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。 - 参 数:
-a
或--all
:删除任何类型的文件。-f
或--force
:强制删除文件或目录,其效果类似rm
指令的-f
参数。-q
或--quiet
:不显示指令执行过程。-v
或--verbose
:详细显示指令执行过程。-test
:仅作测试,并不真的删除文件或目录。
touch
- 功能说明:改变文件或目录时间。
- 语 法:
touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help][--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时间][文件或目录...]
- 补充说明:使用
touch
指令可更改文件或目录的日期时间,包括存取时间和更改时间。 - 参 数:
-a
或--time=atime
或--time=access
或--time=use
:只更改存取时间。-c
或--no-create
:不建立任何文件。-d<时间日期>
:使用指定的日期时间,而非现在的时间。-f
:此参数将忽略不予处理,仅负责解决BSD
版本touch
指令的兼容性问题。-m
或--time=mtime
或--time=modify
:只更改变动时间。-r<参考文件或目录>
:把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。-t<日期时间>
:使用指定的日期时间,而非现在的时间。--help
:在线帮助。--version
:显示版本信息。
umask
- 功能说明:指定在建立文件时预设的权限掩码。
- 语 法:
umask [-S][权限掩码]
- 补充说明:
umask
可用来设定[权限掩码]
。[权限掩码]
是由 3 个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。 - 参 数:
-S
:以文字的方式来表示权限掩码。
whereis
- 功能说明:查找文件。
- 语 法:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
- 补充说明:
whereis
指令会在特定目录中查找符合条件的文件。这些文件的类型应属于原始代码、二进制文件,或是帮助文件。 - 参 数:
-b
:只查找二进制文件。-B<目录>
:只在设置的目录下查找二进制文件。-f
:不显示文件名前的路径名称。-m
:只查找说明文件。-M<目录>
:只在设置的目录下查找说明文件。-s
:只查找原始代码文件。-S<目录>
:只在设置的目录下查找原始代码文件。-u
:查找不包含指定类型的文件。
which
- 功能说明:查找文件。
- 语 法:
which [文件...]
- 补充说明:
which
指令会在环境变量$PATH
设置的目录里查找符合条件的文件。 - 参 数:
-n<文件名长度>
:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p<文件名长度>
:与-n
参数相同,但此处的<文件名长度>
包括了文件的路径。-w
:指定输出时栏位的宽度。-V
:显示版本信息。
cat
- 使用权限:所有使用者
- 使用方式:
cat [-AbeEnstTuv] [--help] [--version] fileName
- 说明:把档案串连接后传到基本输出(萤幕或加
> fileName
到另一个档案) - 参数:
-n
或--number
:由 1 开始对所有输出的行数编号-b
或--number-nonblank
:和-n
相似,只不过对于空白行不编号-s
或--squeeze-blank
:当遇到有连续两行以上的空白行,就代换为一行的空白行-v
或--show-nonprinting
- 范例:
cat -n textfile1 > textfile2
:把textfile1
的档案内容加上行号后输入textfile2
这个档案里cat -b textfile1 textfile2 >> textfile3
:把textfile1
和textfile2
的档案内容加上行号(空白行不加)之后将内容附加到textfile3
里。
chattr(change attribute)
- 功能说明:改变文件属性。
- 语 法:
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]
- 补充说明:这项指令可改变存放在
ext2
文件系统上的文件或目录属性,这些属性共有以下 8 种模式:a
:让文件或目录仅供附加用途。b
:不更新文件或目录的最后存取时间。c
:将文件或目录压缩后存放。d
:将文件或目录排除在倾倒操作之外。i
:不得任意更动文件或目录。s
:保密性删除文件或目录。S
:即时更新文件或目录。u
:预防以外删除。
- 参 数:
-R
:递归处理,将指定目录下的所有文件及子目录一并处理。-v<版本编号>
:设置文件或目录版本。-V
:显示指令执行过程。+<属性>
:开启文件或目录的该项属性。-<属性>
:关闭文件或目录的该项属性。=<属性>
:指定文件或目录的该项属性。
chgrp(change group)
- 功能说明:变更文件或目录的所属群组。
- 语 法:`chgrp [-cfhRv][–help][–version][所属群组][文件或目录…] 或 chgrp [-cfhRv][–help][–reference=<参考文件或目录