/u01目录下查找log文件
find /u01 -type f -name *.log
-exec
有两种写法:
-exec
command \; 对于每一个文件执行一次command
-exec
command + 将各个文件合并作为command的参数执行,参数长度有限制。但是command执行次数比\;少的多。xargs也是采用这种方式。
time find -type f -exec ls -l {} \;
real 0m41.971s
user 0m11.667s
sys 0m19.443s
time find -type f -exec ls -l {} +
real 0m1.326s
user 0m0.271s
sys 0m0.587s
这里把find结果省略了。
-atime: last access time
-mtime: last modify time
-ctime: creation time
请看如下例子说明:
[oracle@odilab ~]$ stat aa.txt
File: `aa.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fc00h/64512d Inode: 1450476 Links: 1
Access: (0600/-rw-------) Uid: ( 500/ oracle) Gid: ( 503/oinstall)
Access: 2014-01-15 08:16:33.073620552 -0500
Modify: 2014-01-15 08:16:33.073620552 -0500
Change: 2014-01-15 08:16:33.073620552 -0500
[oracle@odilab ~]$ cat aa.txt
[oracle@odilab ~]$ stat aa.txt
File: `aa.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fc00h/64512d Inode: 1450476 Links: 1
Access: (0600/-rw-------) Uid: ( 500/ oracle) Gid: ( 503/oinstall)
Access: 2014-01-15 08:40:15.339383216 -0500
Modify: 2014-01-15 08:16:33.073620552 -0500
Change: 2014-01-15 08:16:33.073620552 -0500
[oracle@odilab ~]$ echo "a" >> aa.txt
[oracle@odilab ~]$ stat aa.txt
File: `aa.txt'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 1450476 Links: 1
Access: (0600/-rw-------) Uid: ( 500/ oracle) Gid: ( 503/oinstall)
Access: 2014-01-15 08:40:15.339383216 -0500
Modify: 2014-01-15 08:40:34.802856923 -0500
Change: 2014-01-15 08:40:34.802856923 -0500
这里
echo "a" >> aa.txt只改变了mtime,没有改变atime。但是vi命令会有不同的结果。
[oracle@odilab ~]$ vi aa.txt
[oracle@odilab ~]$ stat aa.txt
File: `aa.txt'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 1450476 Links: 1
Access: (0600/-rw-------) Uid: ( 500/ oracle) Gid: ( 503/oinstall)
Access: 2014-01-15 08:42:45.369451266 -0500
Modify: 2014-01-15 08:40:34.802856923 -0500
Change: 2014-01-15 08:40:34.802856923 -0500
[oracle@odilab ~]$ vi aa.txt
[oracle@odilab ~]$ stat aa.txt
File: `aa.txt'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 1450489 Links: 1
Access: (0600/-rw-------) Uid: ( 500/ oracle) Gid: ( 503/oinstall)
Access: 2014-01-15 08:43:00.841417673 -0500
Modify: 2014-01-15 08:43:00.841417673 -0500
Change: 2014-01-15 08:43:00.847418437 -0500
第一个
vi命令没有改变文件,直接退出。这是atime改变了。 第二个vi命令更改了文件并保存退出,atime和mtime都改变了。
ls -l命令显示的是文件的
mtime。请看例子:
[oracle@odilab ~]$ touch ac.txt
[oracle@odilab ~]$ stat ac.txt | grep "2014"
Access: 2014-01-15 08:51:09.823564790 -0500
Modify: 2014-01-15 08:51:09.823564790 -0500
Change: 2014-01-15 08:51:09.823564790 -0500
[oracle@odilab ~]$ cat ac.txt
[oracle@odilab ~]$ stat ac.txt | grep "2014"
Access: 2014-01-15 08:52:10.028216491 -0500
Modify: 2014-01-15 08:51:09.823564790 -0500
Change: 2014-01-15 08:51:09.823564790 -0500
[oracle@odilab ~]$ ls -l ac.txt
-rw------- 1 oracle oinstall 0 Jan 15 08:51 ac.txt
[oracle@odilab ~]$ echo "ac" > ac.txt
[oracle@odilab ~]$ ls -l ac.txt
-rw------- 1 oracle oinstall 3 Jan 15 08:52 ac.txt
[oracle@odilab ~]$ stat ac.txt | grep "2014"
Access: 2014-01-15 08:52:10.028216491 -0500
Modify: 2014-01-15 08:52:48.781141790 -0500
Change: 2014-01-15 08:52:48.781141790 -0500
find . -maxdepth 1 -type f -name "a[abc].txt" -exec zip {}.zip {} \; -exec mv {} ./backup/ \;