Linux Find命令

/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

将当前目录下修改时间大于1天的*.txt文件压缩,并将原文件移动到./backup目录
find . -maxdepth 1 -type f -name "a[abc].txt"  -exec zip {}.zip {} \; -exec mv {} ./backup/ \;




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值