find awk详解

1、find

   find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作,Linux中find常见用法find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

find命令的参数;
path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #按文件大小查找
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
-amin      # 查找在系统中最后N分钟访问的文件
-mmin      # 查找在系统中最后N分钟里修改过的文件
实例
(1)find工具name参数案例,详解如下
find /data/ -name ".txt”":查找/data/目录以.txt结尾的文件
find /data/ -name "[A-Z]
”:查找/data/目录以大写字母开头的文件
find /data/ -name “test*”:#查找/data/目录以test开头的文件
(2)find工具-type参数案例,详解如下
fnd/data/ -type d:查找/data/目录下的文件夹
find/ data/ ! -type d:查找/data/目录下的非文件夹
find/data/- type l:查找/data/目录下的链接文件
find/data/ - type d |xargs chmod 755 -R:查找目录类型并将权限设置为755
find/data/- type f |xargs chmod 644-R:查找文件类型并将权限设置为644
(3)find工具size参数案例,详解如下
find /data/ -size +1M:查找文件大小大于1MB的文件
find /data/ -size 10M:查找文件大小为10MB的文件。
find /data/ -size -1M:查找文件大小小于1MB的文件。
(4)find工具-perm参数案例,详解如下:
Find /data/ -perm 755:查找/data/目录权限为755的文件或者目录
Find /data/ -perm -775:权限小于775的文件或目录
Find /data/ -perm +644:查找文件权限符号为644以上的文件
(5)find工具mime参数案例,详解如下
atime, access time:文件被读取或者执行的时间
ctime, change time:文件状态改变时间
mtime, modify time:文件内容被修改的时间
Find /data/ -mtime +30-name “.log":查找30天以前的log文件
Find /data/ -mtime -30 -name ““.txt”:查找30天以内的txt文件
Find /data/ -mtime 30 -name " .txt":查找第30天的txt文件
find /data/ -mmin +30-name ".log”:查找30min以前被访问的log文件
find /data/ -amin -30-name ".log”:查找30min以内被访问的log文件
find /data/ -cmin 30-name ".log”:查找第30min改变的log文件
(6)find工具参数综合案例,代码如下
查找/data目录以,.log结尾,文件大于10KB的文件,同时/cp到/tmp目录
find /data/ -name "
. log” -type f -size +10k -exec cp {} /tmp/ ;
查我/data/目录以结尾,文件大于10kB的文件,权限为644并别除该文件
find /data/ -name "
.log” -type f -size +10k -m perm 644 -exec rm -rf {} ;
查找/data/目录以.log结尾,30天以前的文件,大小大于10并移动到/temp目录
find /data/ -name " . log” -type f -mtine +30 -size +10M -exec mv {} /temp/
xargs:

2、awk

   awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk将会使你的工作变的高大上。awk 是三剑客的老大,利剑出鞘,必会不同凡响。

1、awk 的原理
通过一个简短的命令,我们来了解其工作原理。
awk ‘{print $0}’ /etc/passwd
echo hhh|awk ‘{print “hello,world”}’
awk ‘{ print “hiya” }’ /etc/passwd
通过第一个指令你将会见到/etc/passwd 文件的内容出现在眼前。现在,解释 awk 做了些什么。调用 awk时,我们指定/etc/passwd 作为输入文件。执行 awk 时,它依次对/etc/passwd 中的每一行执行 print 命令。所有输出都发送到 stdout,所得到的结果与执行 cat /etc/passwd 完全相同。现在,解释{ print }代码块。在 awk 中,花括号用于将几块代码组合到一起,这一点类似于 C 语言。在代码块中只有一条 print 命令。在 awk 中,如果只出现 print 命令,那么将打印当前行的全部内容,通过一个简短的命令,我们来了解其工作原理。

你可能感兴趣的:(find awk详解)