有趣的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--