一、由于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查找到的结果逐一交给后面的命令进行来处理。