文件和目录管理
文件查看类命令
语法: cat 选项 参数
选项: n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
参数:指定要打印输出的文件
实例:
cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
语法:tac 选项 参数
选项: -b,
-r,
-s,
参数:指定打印输出的文件
实例:
1234
abcd
4321
dcba
abcd
1234
语法:head 选项 参数
选项: -n:显示文件前n行的内容;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
参数:指定显示文件
实例:
# head /etc/passwd #默认,显示开头前10行
# head -n 5 /etc/passwd #显示开头前5行
# head -q -n 5 file1 file2 file3 #显示多个文件开头前5行,并且不显示文件名的文件头
# head -c -3 /etc/passwd #显示从0到倒数第3行的字符。
语法:tail 选项 参数
选项: --retry:不断尝试打开文件,需和 -f 合用
-c n:显示文件末尾n个字节内容
-f :在文件末尾追加数据
-n 5:显示文件末尾5行内容
--pid=PID:与-f合用,表示在进程ID,PID死掉之后结束.
-q: 从不输出给出文件名的首部
-s: 与-f合用,表示在每次反复的间隔休眠S秒
-v, --verbose 总是输出给出文件名的首部
参数: 指定文件名
实例:
tail file (显示文件file的最后10行)
tail +20 file (显示文件file的内容,从第20行至文件末尾)
tail -c 10 file (显示文件file的最后10个字符)
- more: 基于vi的文本过滤器,用于分页显示文本,只能用于向后浏览
语法:more 选项 参数
选项: -n:指定每屏显示的n行;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:清屏;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+n:从n行开始显示。
参数: 指定显示文件名
实例:
# more -dc file # 在显示之前先清屏,并且在屏幕的最下方显示完核的百分比
# more -c -10 file # 在显示之前先清屏,每10行显示一次,
文件内部操作:
Space键:显示文本的下一屏内容。
Enier键:只显示文本的下一行内容。
斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
H键:显示帮助屏,该屏上有相关的帮助信息。
B键:显示上一屏内容。
Q键:退出命令。
- less: 类似more的文本过滤器,但是可以向前向后浏览,man手册默认使用less
语法:less 选项 参数
选项: -e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
参数: 指定打开文件
实例:
# less test #查看文件
# ipconfig |less #常用方式,分页显示ipconfig输出内容
文件内部操作:
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
语法:stat 选项 参数
选项: -L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
参数:指定文件名
实例:
[root@localhost ~]
-rw-r
[root@localhost ~]
file: “myfile”
Size: 0 Blocks: 8 IO Block: 4096 一般空文件
Device: fd00h/64768d Inode: 194805815 Links: 1
Access: (0644/-rw-r
Access: 2018-05-09 22:22:35.000000000 +0800
Modify: 2018-05-09 20:44:21.000000000 +0800
Change: 2018-05-09 20:44:21.000000000 +0800
语法:touch 选项 参数
选项: -a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
参数:指定文件名
实例:
# touch test #将testp的档案时间改为当前时间,或文件不存在建之
# touch -c -t 05061803 test #将档案时间改为,5月6日18点3分
# touch -r abc test #将test档案改成跟abc一样
文件管理类工具
语法:cp 选项 参数
选项: -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或文件不存在,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数:
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例:
# cp -u -v file1 file2 #复制文件,只有源文件较目的文件的修改时间新时,才复制文件
# cp file1 file2 #将文件file1复制成文件file2
# cp -i file1 file2 #采用交互方式将文件file1复制成文件file2
# cp -f file1 file2 #将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
# cp -R dir1 dir2 #将目录dir1复制成目录dir2
# cp -R file1 file2 file3 dir1 dir2 #同时将文件file1、file2、file3与目录dir1复制到dir2
# cp -p a.txt tmp/ #复制时保留文件属性
# cp -P /var/tmp/a.txt ./temp/ #复制时保留文件的目录结构
# cp -b a.txt tmp/ #复制时产生备份文件
# cp -b -V t a.txt /tmp #复制时产生备份文件,尾标 ~1~格式
# cp -b -S _bak a.txt /tmp #指定备份文件尾标
语法:mv 选项 参数
选项: --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件同名,则询问用户是否覆盖目标文件。
用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
参数:
源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;
如果“目标文件”是目录名则将源文件移动到“目标文件”下。
实例:
# mv f1 f2 #将f1重命名为f2
# mv /etc/ . #将etc下的所有文件备份到当前文件
语法:rm 选项 参数
选项: -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
参数:指定文件或目录,如果是目录,则必须加上-r或者-R选项
实例:
# rm -i test example #交互式删除当前目录下的文件test和example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)
# rm -rf / # 这是一个非常邪恶的命令
语法:rename 选项 参数
选项:
-n 操作预览,在不更改文件名称情况下,显示执行后的结果
-f 强制执行
参数:
原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。
rename支持通配符
? 可替代单个字符
* 可替代多个字符
[charset] 可替代charset集中的任意单个字符
实例:
# rename "s/AA/aa/" * #把文件名中的AA替换成aa
# rename 's/^/bak_/' *.bin #给当前目录下的.bin后缀文件加上bak_前缀
# rename 's/\.bin$//' * #批量删除当前目录下所有文件的.bin 后缀
# rename 's/A-Z/a-z/' * #修改当前目录所有文件名为小写
目录管理类的命令:
语法:mkdir 选项 参数
选项: -m,
-p,
-v,
-Z,
参数:目录名
实例:
语法:rmdir 选项 参数
选项: -p 或 --parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v 或 -verboes:显示命令的详细执行过程;
参数:要删除的目录名
实例:
# rmdir test #删除test目录,注意必须是空目录
# rmdir -p a/b/c #删除指定目录及其上级文件夹