linux命令详解2 linux命令详解手册pdf小白盘( 二 )


该方法同样适用于目录 。
7. 使用交互模式
当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件 。对于mv的这一行为一般不会有什么提示 。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项 。(译注:通常发行版会通过alias命令 , 将-i作为默认选项,所以会有提示 。)
假设我们想将 file1.txt 移动到 /home/pungki/office 。同时 , /home/pungki/office 目录下已经有file1.txt文件了 。
$ mv -i file_1.txt /home/pungki/office
这个提示会让我们知道目标位置处file_1.txt的存在 。如果我们按y键,那么那个文件将会被删除 , 否则不会 。
8. 使用更新选项
-i 选项会提示我们关于覆盖文件的提示,而 -u 则只在源文件比目标文件新时才执行更新 。让我们看一看下面的例子:
假如 file1.txt 和 file2.txt有如下特点:
File_1.txt has 84 bytes file size and it last modified time is 12:00
File_2.txt has 0 bytes file size and it last modified time is 11:59
我们想将它们移动到 /home/pungki/office 目录下 。**但是目标地址*已经有file1.txt和file2.txt了 。
我们用下面的命令将file1.txt 和file2.txt从当前目录移动到/home/pungki/office
$ mv -uv *.txt /home/pungki/office
可以看到这些文件被移动了 。能移动这些文件是因为它们最近的修改时间戳比 /home/pungki/office 目录中的文件新 。
9.不要覆盖任何已存在的文件
如果-i选项询问我们是否要覆盖文件,那么 -n 选项将不会允许我们覆盖任何已存在的文件 。
继续使用第8点中的例子,如果我们将-u 换成 -n同时加上-v选项,那么我们会看到没有任何文件移动到了 /home/pungki/office 目录下 。
$ mv -vn *.txt /home/pungki/office
10. 复制时创建备份
默认情况下,移动文件将会覆盖已存在的目标文件 。但是如果我们移动错了文件而目标文件已经被新的文件覆盖了 , 这时应该怎么办才好呢?有没有一种方法可以恢复之前的文件呢?答案是肯定的 。我们可以用-b选项 。该选项会在新文件覆盖旧文件时将旧文件做备份 。这里我们还以第8点为例 。
$ mv -bv *.txt /home/pungki/office
如截图中所见 , 在 /home/pungki/office 目录下出现了名为file1.txt~ and file2.txt~ 的文件 。那个波浪符号(~)意味着这些文件是备份文件 。从它们的属性中我们可以看到,这些文件比file1.txt和file2.txt要旧 。
linux awk命令详解awk是一个强大的文本分析工具,相对于grep的查找 , sed的编辑,awk在对数据分析并生成报告时,显得尤为强大 。
简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理 。
awk有三个不同的版本:awk、nawk和gawk,未作特别说明,一般指gawk , gawk是awk的GNU版本 。
之所以叫awk是因为其取了三位创始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family
Name的首字符 。
awk格式:
格式: sed -n '3p' sed.txt
找谁干啥(条件动作)
awk格式
#取出/etc/passwd 第1行的第1列和第3列
awk -F: 'NR==1{print $1,$3}' /etc/passwd
awk 选项 '条件{动作}' /etc/passwd
条件: 哪一行,过滤什么内容
动作: print输出与显示 ,计算....
awk取行:与sed类似
案例01:取出sed.txt的第2行
[root@oldboy81-golden-lnb /oldboy]# cat sed.txt
101,oldgirl,CEO
102,zhangya,CTO
103,lidao007,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt

推荐阅读