好久沒更新部落格了,今晚來寫一篇吧。
正文之前,先來將乙個小插曲。我在面試當前崗位的時候,遇到了乙個面試題目:
查詢出最近三天建立的.log結尾的檔案並刪除。
看到的時候,內心狂喜,這不很簡單嗎?我就三分鐘寫下答案然後就交卷了。結果很是意外,答案是錯的!我清楚的記得我寫的答案是這樣的:
find / -mtime 3 -name *.log | xargs rm -f
並且在自己的虛擬機器上跑了一下,操作也成功了!我就很好奇,到底是**出問題了呢?後來我仔仔細細查了一下,原因出在-name 後面的選項上,應該加上單引號,否則會報錯。請看下面的例子:
[root@d ~]# ls
a324.sql centos-7.repo elasticsearch-5.6.8.zip.1 output.session
a324.sql.tar.gz c.sh git-2.26.2-64-bit.exe s.sh
aa.sh elasticsearch-5-6-8 grafana-5.0.4-1.x86_64.rpm s.sh.tar.gz
a.ss elasticsearch-5.6.8 grafana-5.0.4-1.x86_64.rpm.nak time.log
a.tar.gz elasticsearch-5.6.8.rpm mbox wget-log
a.txt elasticsearch-5.6.8.zip nohup.out zz.sh
[root@d ~]# find ./ -name *.rpm
find: paths must precede expression: grafana-5.0.4-1.x86_64.rpm
usage: find [-h] [-l] [-p] [-olevel] [-d help|tree|search|stat|rates|opt|exec] [path...] [expression]
[root@d ~]# find ./ -name '*.rpm'
./elasticsearch-5.6.8.rpm
./grafana-5.0.4-1.x86_64.rpm
好了。開始步入正題(外面又下雨求了!好煩)
find命令的工作方式如下:沿著檔案層次結構向下遍歷,匹配符合條件的檔案,執行相應的操作。預設的操作是列印出相應的檔案或者目錄,這也可以使用-print選項來指定!
2、-name 查詢.txt結尾的檔案
find / -name '*.txt'
3、查詢.txt結尾的檔案,忽略.txt的大小寫
find / -iname '*.txt'
4、-o 邏輯或操作符
[root@d tests]# find ./ -name '*.txt' -o -name '*.js'
./c.txt
./a.js
5、邏輯與 -a ,和-o差不多
6、正則-regex,匹配以.py或者.sh結尾的檔案。-iregex忽略大小寫。
find . -regex '.*\.\(py\|sh\)$'
7、!:否定引數 查詢當前目錄下非.txt結尾的檔案
find ./ ! -name '*.txt'
8、基於目錄深度搜尋 -maxdepth n,-mindepth n。預設情況下,find 命令不會跟隨符號鏈結,-l選項可以強制改變這種行為。
9、-type,後面可以跟-f -d -l -s -b
10、-atime使用者最近一次訪問檔案的時間 -ctime檔案元資料最後一次改變的時間 -mtime檔案內容最後一次被修改的時間。
find ./ -atime 7表示第七天被訪問的檔案
find ./ -atime +7表示七天前被訪問的檔案
find ./ -atime -7表示七天內被訪問的檔案
-amin -cmin -mmin
11、-newer
12、-size基於大小搜尋
find ./ -type f -size 7k 剛好7k
find ./ -type f -size +7k 大於7k
find ./ -type f -size -7k 小於7k
13、-perm基於許可權
find . -type f -perm 644 查詢許可權為644的檔案
14、-user zhaoyun找出zhaoyun擁有的所有檔案
find . -user zhaoyun
15、find相應的操作
-print:預設動作,列印
-delete:刪除
[root@d tests]# ls
a.html a.js a.txt c.txt
[root@d tests]# find . -name *.txt -delete
[root@d tests]# ls
a.html a.js a.txt
16、-exec執行命令
find命令hui
史上最全scss教程
1.資料型別 sassscript 支援 6 種主要的資料型別 將帶引號的字串轉化為無引號字串 mixin b selector includeb header 2.變數 通常在專案中會建立variable.scss用來儲存一些全域性變數 普通變數 g primary 409eff 解構 value...
linux命令史上最全
關閉檔案 q 退出,沒動過檔案 w 儲存 wq 儲存並退出,q!不儲存並退出 w 強行儲存 開啟檔案 vi 開啟檔案,定位至最後一行 vi 開啟檔案,定位到 行 壓縮檔案命令 gzip 解壓檔案命令 gunzip 打包命令 tar cvf a.tar 打包進去的檔案,資料夾名 解包命令 tar xc...
史上最全講解 IOC
spring ioc自動注入 spring ioc掃瞄器 bean的作用域 bean的生命週期 通俗易懂的理解ioc 由於引進了中間位置的 第三方 也就是ioc容器,使得a b c d這4個物件沒有了耦合關係,齒輪之間的傳動全部依靠 第三方 了,全部物件的控制權全部上繳給 第三方 ioc容器,所以,...