Linux文件管理相关命令整理记录
命令 | 含义 | 命令 | 含义 | 命令 | 含义 |
---|---|---|---|---|---|
lsattr | 显示文件属性 | mattrib | 变更或显示MS-DOS文件的属性 | mc | 提供一个菜单式的文件管理程序 |
mdel | 删除 MSDOS 格式的档案 | mdir | 显示MS-DOS目录 | mktemp | 建立暂存文件 |
more | 类似cat,更方便使用者逐页阅读 | mmove | 在MS-DOS文件系统中,移动文件或目录,或更改名称 | mread | 将MS-DOS文件复制到Linux/Unix的目录中 |
mren | 更改MS-DOS文件或目录的名称,或是移动文件或目录 | mtools | 用于显示mtools支持的指令 | mtoolstest | 测试并显示mtools的相关设置 |
mv | 为文件或目录改名、或将文件或目录移入其它位置 | od | 输出文件内容 | paste | 合并文件的列 |
patch | 修补文件 | rcp | 复制远程文件或目录 | rm | 删除一个文件或者目录 |
【lsattr】显示文件属性
用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。
语法:
lsattr [-adlRvV][文件或目录...]
参数说明:
参数 | 说明 |
---|---|
-a | 显示所有文件和目录,包括以".“为名称开头字符的额外内建,现行目录”.“与上层目录”…" |
-d | 显示,目录名称,而非其内容 |
-l | 此参数目前没有任何作用 |
-R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-v | 显示文件或目录版本 |
-V | 显示版本信息 |
实例:
1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf
然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。
vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉:
chattr -i /etc/resolv.conf
使用 lsattr 命令来显示文件属性:
# lsattr /etc/resolv.conf
输出结果为:
----i-------- /etc/resolv.conf
2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages
【mattrib】变更或显示MS-DOS文件的属性
mattrib为mtools工具指令,模拟MS-DOS的attrib指令,可变更MS-DOS文件的属性。
语法:
mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles ... ]
参数说明:
参数 | 说明 |
---|---|
-a/+a | 除去/设定备份属性 |
-h/+h | 除去/设定隐藏属性 |
-r/+r | 除去/设定唯读属性 |
-s/+s | 除去/设定系统属性 |
-/ | 递回的处理包含所有子目录下的档案 |
-X | 以较短的格式输出结果 |
实例:
列出 A 槽 MSDOS 格式磁片上所有文件的属性:
mattrib a:
除去 A 槽磁片上 msdos.sys 档案的隐藏、系统与唯读属性:
mattrib -h -s -r a:msdos.sys
除去 A 槽磁片上包含子目录下所有档案的唯读属性:
mattrib -r -/ a:*.*
【mc】提供一个菜单式的文件管理程序
执行mc之后,将会看到菜单式的文件管理程序,共分成4个部分。
语法:
mc [-abcdfhkPstuUVx][-C <参数>][-l <文件>][-v <文件>][目录]
参数说明:
参数 | 说明 |
---|---|
-a | 当mc程序画线时不用绘图字符画线 |
-b | 使用单色模式显示 |
-c | 使用彩色模式显示 |
-C<参数> | 指定显示的颜色 |
-d | 不使用鼠标 |
-f | 显示mc函数库所在的目录 |
-h | 显示帮助 |
-k | 重设softkeys成预设置 |
-l<文件> | 在指定文件中保存ftpfs对话窗的内容 |
-P | 程序结束时,列出最后的工作目录 |
-s | 用慢速的终端机模式显示,在这模式下将减少大量的绘图及文字显示 |
-t | 使用TEMPCAP变量设置终端机,而不使用预设置 |
-u | 不用目前的shell程序 |
-U | 使用目前的shell程序 |
-v<文件> | 使用mc的内部编辑器来显示指定的文件 |
-V | 显示版本信息 |
-x | 指定以xterm模式显示 |
按键操作:
按键 | 说明 |
---|---|
F9 or Esc+9 | 激活菜单栏 |
Tab | 在两个窗口间移动 |
F10 or Esc+0 | 退出MC |
Control-Enter or Alt-Enter | 可以将文件名拷贝到命令行 |
F1 or Esc+1 | 打开帮助页面 |
【mdel】删除 MSDOS 格式的档案
在删除只读之前会有提示信息产生。
语法:
mdel [-v] msdosfile [ msdosfiles ... ]
参数说明:
参数 | 说明 |
---|---|
-v | 显示更多的讯息 |
实例:
#将 A 槽磁片根目录中的 autoexec.bat 删除
mdel a:autoexec.bat
【mdir】显示MS-DOS目录
语法:
mdir [-afwx/][目录]
参数说明:
参数 | 说明 |
---|---|
-/ | 显示目录下所有子目录与文件 |
-a | 显示隐藏文件 |
-f | 不显示磁盘所剩余的可用空间 |
-w | 仅显示目录或文件名称,并以横排方式呈现,以便一次能显示较多的目录或文件 |
-X | 仅显示目录下所有子目录与文件的完整路径,不显示其他信息 |
实例:
#显示c盘中的内容:
mdir -/ c:\*
【mktemp】建立暂存文件
mktemp建立的一个暂存文件,供shell script使用。
语法:
mktemp [-qu][文件名参数]
参数说明:
参数 | 说明 |
---|---|
-q | 执行时若发生错误,不会显示任何信息 |
-u | 暂存文件会在mktemp结束前先行删除 |
[文件名参数] | 文件名参数必须是以"自订名称.XXXXXX"的格式 |
实例:
#生成临时文件
mktemp tmp.xxxx
【more】类似 cat
语法:
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数说明:
参数 | 说明 |
---|---|
-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 testfile
从第 20 行开始显示 testfile 之文档内容:
more +20 testfile
常用操作命令:
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
【mmove】在MS-DOS文件系统中,移动文件或目录,或更改名称
语法:
mmove [源文件或目录...][目标文件或目录]
参数说明:
[源文件或目录…]
: 执行操作的源文件或目录路径[目标文件或目录]
: 执行操作后的目标文件或目录路径
实例:
#将文件"autorun.bat"移动到目录"test"中:
mmove autorun.bat test
【mread】将MS-DOS文件复制到Linux/Unix的目录中
语法:
mread [MS-DOS文件...][Linux文件或目录]
参数说明:
[MS-DOS文件…]
: 执行操作的DOS源文件或目录路径[Linux文件或目录]
: 执行操作后的Linux目标文件或目录路径
实例:
#将盘"a:\"中的所有内容复制到当前工作目录下:
mread a:\* ./
【mren】更改MS-DOS文件或目录的名称,或是移动文件或目录
源文件必须是磁盘上已经存在的文件,若忽略盘符及路径,则表示当前盘及当前目录的文件。
新文件名是所要更换的文件名称。新文件名称前不可以加与源文件不同的盘符及路径,因为该命令只能更改同一盘上的文件名称。
语法:
mren [源文件或目录...][目标文件或目录]
参数说明:
[源文件或目录…]
: 执行操作的源文件名或者源文件路径[目标文件或目录]
: 执行操作的目标文件名或者目标文件路径
实例:
#将a盘下的文件"autorun.bat"的文件名修改为"auto.bat":
mren a:\autorun.bat auto.bat
【mtools】显示mtools支持的指令
语法:
mtools
参数说明:
参数 | 说明 |
---|---|
-a | 长文件名重复时自动更改目标文件的长文件名 |
-A | 短文件名重复但长文件名不同时自动更改目标文件的短文件名 |
-o | 长文件名重复时,将目标文件覆盖现有的文件 |
-O | 短文件名重复但长文件名不同时,将目标文件覆盖现有的文件 |
-r | 长文件名重复时,要求用户更改目标文件的长文件名 |
-R | 短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名 |
-s | 长文件名重复时,则不处理该目标文件 |
-S | 短文件名重复但长文件名不同时,则不处理该目标文件 |
-v | 执行时显示详细的说明 |
-V | 显示版本信息 |
【mtoolstest】测试并显示mtools的相关设置
语法:
mtoolstest
实例:
mtoolstest
#显示mtools 软件包当前的配置信息
【mv】为文件或目录改名、或将文件或目录移入其它位置
语法:
mv [options] source dest
mv [options] source... directory
参数说明:
参数 | 说明 |
---|---|
-b | 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份 |
-i | 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作 |
-f | 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件 |
-n | 不要覆盖任何已存在的文件或目录 |
-u | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作 |
实例:
#将文件 aaa 改名为 bbb :
mv aaa bbb
#将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs:
mv info/ logs
#将 /usr/runoob 下的所有文件和目录移到当前目录下:
mv /usr/runoob/* .
【od】输出文件内容
od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
语法:
od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]
参数说明:
参数 | 说明 |
---|---|
-a | 此参数的效果和同时指定"-ta"参数相同 |
-A<字码基数> | 选择要以何种基数计算字码 |
-b | 此参数的效果和同时指定"-toC"参数相同 |
-c | 此参数的效果和同时指定"-tC"参数相同 |
-d | 此参数的效果和同时指定"-tu2"参数相同 |
-f | 此参数的效果和同时指定"-tfF"参数相同 |
-h | 此参数的效果和同时指定"-tx2"参数相同 |
-i | 此参数的效果和同时指定"-td2"参数相同 |
-j<字符数目>或–skip-bytes=<字符数目> | 略过设置的字符数目 |
-l | 此参数的效果和同时指定"-td4"参数相同 |
-N<字符数目>或–read-bytes=<字符数目> | 到设置的字符数目为止 |
-o | 此参数的效果和同时指定"-to2"参数相同 |
-s<字符串字符数>或–strings=<字符串字符数> | 只显示符合指定的字符数目的字符串 |
-t<输出格式>或–format=<输出格式> | 设置输出格式 |
-v或–output-duplicates | 输出时不省略重复的数据 |
-w<每列字符数>或–width=<每列字符数> | 设置每列的最大字符数 |
-x | 此参数的效果和同时指定"-h"参数相同 |
【paste】合并文件的列
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
语法:
paste [-s][-d <间隔字符>][--help][--version][文件...]
参数说明:
参数 | 说明 |
---|---|
-d<间隔字符>或–delimiters=<间隔字符> | 用指定的间隔字符取代跳格字符 |
-s或–serial | 串列进行而非平行处理 |
[文件…] | 指定操作的文件路径 |
实例:
#将文件"file"、"testfile"、"testfile1"进行合并:
paste file testfile testfile1
【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 <剥离层级>] < [修补文件]
参数说明:
参数 | 说明 |
---|---|
-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=<剥离层级> | 设置欲剥离几层路径名称 |
-f<拒绝文件>或–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 | 以二进制模式读写数据,而不通过标准输出设备 |
–nobackup-if-mismatch | 在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件 |
–verbose | 详细显示指令的执行过程 |
实例:
#将文件"testfile1"升级,其升级补丁文件为"testfile.patch",输入如下命令:
patch -p0 testfile1 testfile.patch
【rcp】命令用复制远程文件或目录
rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
语法:
rcp [-pr][源文件或目录][目标文件或目录]
参数说明:
参数 | 说明 |
---|---|
-p | 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间 |
-r | 递归处理,将指定目录下的文件与子目录一并处理 |
实例:
#要将远程主机(10.6.131.1)主目录下的文件"testfile"复制到本地,则输入如下命令:
rcp root@10.6.131.1:./testfile testfile
【rm】删除一个文件或者目录
语法:
rm [options] name...
参数说明:
参数 | 说明 |
---|---|
-i | 删除前逐一询问确认 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认 |
-r | 将目录及以下之档案亦逐一删除 |
实例:
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
注意: 文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。