Hack 9. Find Command

有趣的FIND命令来了。
find命令是用来查找文件用的,这里的文件是指文件名,即查找符合条件的文件,而grep是通过查找文件内容来达到查询的目的。

Syntax: find [pathnames] [conditions]

语法:find [起始目录] 寻找条件 操作

还有一种表达是:
find PATH OPTION [-exec COMMAND { } \;]

实例:
情况1:查找文件名中包含指定关键字的文件
下面这条命令是查找当前目录及其子目录下文件名中包含test开头的文件》
jack@Ubuntu:~$ find . -name "test*"
./testdel.txt
./test.log
./test1
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.sbstore
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.pset
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.sbstore
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.pset
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.cache
./.mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.cache
./testb
./testa
./test
./test/test.demo
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.sbstore
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.pset
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.sbstore
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.pset
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-malware-simple.cache
./.cache/mozilla/firefox/9g1e2q46.default/safebrowsing/test-phish-simple.cache


下面这条命令用来查找文件大小大于1M的文件:

jack@Ubuntu:~/.mozilla/firefox$ find . -type f -size +1000k
./9g1e2q46.default/healthreport.sqlite
./9g1e2q46.default/places.sqlite
./9g1e2q46.default/safebrowsing/goog-malware-shavar.sbstore
./9g1e2q46.default/healthreport.sqlite-wal


查找/home/jack/test目录下最近60天没有修改的文件
jack@Ubuntu:~/.mozilla/firefox$ find /home/jack/test -mtime +60
/home/jack/test/hello.sh
/home/jack/test/dirH
/home/jack/test/dirH/t.txt
/home/jack/test/Hi.class
/home/jack/test/Hi.java


查找最近两天修改的文件:
jack@Ubuntu:~/.mozilla/firefox$ find /home/jack/test -mtime -2
/home/jack/test
/home/jack/test/test.demo

删除文件大小大于100M的归档文件(先ls一下,再看徐不需要remove)。

jack@Ubuntu:~/.mozilla/firefox$ find . -type f -name "*.tar.gz" -size +100M -exec ll {} \;
jack@Ubuntu:~/.mozilla/firefox$ find . -type f -name "*.tar.gz" -size +100M -exec rm -f {} \;

这里需要解释一下:-exec后面的{}和\; 符号。
{} 就是指明前面查找出来的文件,相当于把前面检索出来的文件放到这里的{}中,而\;是命令的结束标志。


最后一条是归档最近60都没有做过修改的文件,把它命名为ddmmyy_archive.tar,而放到/tmp目录。

jack@Ubuntu:~$ find . -type f -mtime +60 | xargs tar -cvf /tmp/`date +%d%m%y`_archive.tar

结果:/tmp目录下多了一个240515.archive.tar文件。
jack@Ubuntu:~$ ls /tmp/
240515_archive.tar  keyring-t65LPh      pulse-PKdhtXMmr18n
at-spi2             pulse-2L9K88eMlGn7  ssh-lJfPWmPM1527
ibus.log            pulse-gQOK5qQiX3I6  unity_support_test.1



之前一直不成功是因为:

`这个符号是键盘上~,而不是'.

--EOF--








猜你喜欢

转载自xfxlch.iteye.com/blog/2213769