一、由于awk命令太多,还没学完,没办法整理,只好先把find命令整理出来了


二、find用来查找文件,find的常用参数:

1.-name按名字查找

2.-perm按权限查找

3.-user按用户名查找

4.-group按组查找

5.-type( d f b ) -name 按文件类型查找,一般配合-name来使用

-size按文件大小查找

-size +200M 查找大于200M的文件    

-size -200M 小于100M的文件

-size +512k  查大于512k的文件

6.按文件夹深度查找,如果知道了文件大概所在的文件目录级数,那么-maxdepth n 就很快的能在指定目录中查找成功

-maxdepth 0 -name filename

-maxdepth 3 -name filename


7.按时间查找,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前

-atime -ctime -mtime 24小时

-amin  -ctime -mmin   分钟

              

11:58--------11:59-----12:00

+1              1         -1


8.查看文件的状态

[root@localhost ~]# stat b.txt 

  File: `b.txt'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 1901542     Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2014-10-31 16:04:35.000000000 +0800

Modify: 2014-10-31 16:04:26.000000000 +0800

Change: 2014-10-31 16:04:26.000000000 +0800


Access:修改后第一次查看(more less cat)文件的时间

Modify:vi echo修改文件的时间----->“Change”也会改变

Change:chmod chown chgrp命令改变文件的时间


三、find命令用法:

1.查找并查看/usr/local/src目录5天前更改过的文件和目录

find /usr/local/src  -mtime +5 -exec ls -l {} \;


2.查找并拷贝/usr/local/src目录5天前更改过的文件和目录到backup目录

find /usr/local/src/ -mtime +5 -exec cp -r {} /tmp/ \;


3.查找大于10k的文件并查看文件大小

[root@localhost shell]# find /root/shell/ -name "*" -type f -size +10k -exec ls -lh {} \;

-rw-r--r-- 1 root root 30K Nov 25 01:45 /root/shell/cc01.tar.gz

-rw-r--r-- 1 root root 15K Jan 29  2015 /root/shell/code/CH17/gmond_msg_1.txt

-rw-r--r-- 1 root root 12K Jan 29  2015 /root/shell/code/CH17/machine_record

-rw-r--r-- 1 root root 46K Jan 29  2015 /root/shell/code/CH15/shc-3.8.6.tgz

-rw-r--r-- 1 root root 116K Jan 29  2015 /root/shell/code.zip

-rw-r--r-- 1 root root 21K Jan 22  2015 /root/shell/scripts.zip


4.查找并打包文件(命令和执行结果没问题,打包会报错,求原因),建议先cp或者mv文件,然后再打包

find /usr/local/src/ -name "*.txt" |xargs tar -czvf cc08.tar.gz {} \;

tar: {}: Cannot stat: No such file or directory

tar: ;: Cannot stat: No such file or directory

tar: Removing leading `/' from member names

/usr/local/src/a/c1.txt

/usr/local/src/c3.txt

/usr/local/src/c2.txt

/usr/local/src/c4.txt

/usr/local/src/c1.txt

tar: Error exit delayed from previous errors


5.查找/usr/local/src下5天前更改过的文件并删除

find /usr/local/src -type f  -mtime +5 -exec rm -rf {} \;


四、-exec和xargs的区别:

-exec会把find查找到的结果一次性全部交给后面的命令来进行处理;

xargs会把find查找到的结果逐一交给后面的命令进行来处理。