find总结
find命令可以說是最常用的幾個命令之一,以下主要總結(jié)其常用用法。
1、普通查找。首先介紹下find命令的基本格式,跟常用參數(shù)
???? find + 要找的路徑(根下或者那個目錄下)+參數(shù)
?????因為其參數(shù)有很多,所以find命令如此的強大,例如我們常用的-name 就類似過濾關(guān)鍵字。舉個例子,查找當(dāng)前目錄下以txt結(jié)尾的文件
???????????????????????? find . -name "*.txt"
?
這樣就找出了你所想要的內(nèi)容,-name參數(shù)的補充就是-iname,意思是在匹配的時候忽略大小寫。
???? -path 參數(shù)的意思跟-name差不多,也是顧慮關(guān)鍵字,但是它可以后接通配符,而且會將文件的路徑作為一個整體,進行匹配。????????
真的很強大.????????????? find . -path "*sed*"?????????
??? -regex參數(shù)和-path類似,區(qū)別是它是基于正則表達式來匹配文件的路徑。這里就不深入了。
??? -type參數(shù)是匹配文件類型搜索
?????????? f?? 普通文件
?????????? d???目錄
???????????l???符號鏈接
???????????????????????? find /home/yw_cy -type f
????-atime(訪問時間):用戶最近一次訪問文件的時間。
??? -mtime(修改時間):文件內(nèi)容最后一次修改的時間。
??? -ctime(變化時間):文件元數(shù)據(jù)(例如權(quán)限)最后一次改變的時間。
???????????????? find . -type f -atime -7
??? -7為7天內(nèi)的,7為正好七天前訪問的,+7表示七天前被訪問的文件。
??? -size 匹配大小
?????????????????find . -type f -size +2k
?
?
??????????? M為兆 G為吉
?
??? -delete 匹配到刪除
???????????????? find . -type f -name "*.swp" -delete 這個參數(shù)放在后面。
??? -perm 匹配權(quán)限
?????????????????find . -type f -perm?644
???????????????? find . -type f -name "*.php" ! -perm 644
??? 擴展: !-name 非名字為
??????????? -maxdepth? -mindepth 最大深度與最小深度
????????????find . -mindepth 2 -type f
??????????
?????????????????
?
?2、復(fù)合查找。?
-exec????????????????需求1:我們需要將某位用戶(比如ROOT)全部文件的所有權(quán)更改成另一為用戶(比apache)。 ????????????????????????? ??????????????????????? find . -type f -user root -exec chown apache {} \; ?????????????????????????????????? ????????????????????????????需求2:找出給定目錄中的所有C程序文件拼接起來寫入單個文件all_c_files.txt ???????????????????????? find . -type f -name?"*.c"? -ecex cat {} \;>all_c_files.txt ??????????????????????????? 需求3:將10天前的.txt文件復(fù)制到OLD目錄中。 ????????????????????????? find . -type -mtime +10 -name "*.txt" -exec cp {} OLD?\; -exec結(jié)合多個命令: ???????????????????????? ????????????????????????????因為-exec后只可接一個命令,所以要結(jié)合多個命令就要靠腳本了,可以把命令寫到一個腳本中 ,例如shell.sh,然后?? -exec ./shell.sh {} \; ? ?????????????????? -printf??????親和的輸出信息,配合 ? ????????????????????????? find . -type f -name "*.txt" -exec printf "Text file: %s\n" {} \; ????????????????xargs????功能類似exec
我們可以用管帶將一個命令的stdout (標(biāo)準(zhǔn)輸出)重定向到另一個命令的stdin(標(biāo)準(zhǔn)輸入)。例如:
???????????????????????????????????????????? cat??? sed.txt | grep "test"
但是,有些命令只能以命令參數(shù)的形式接受數(shù)據(jù)。而無法通過stdin接受數(shù)據(jù)流。這種情況下,我們沒法用管道來提供那些只通過命令行參數(shù)才能提供數(shù)據(jù)。這是就可以用到xargs.
簡單例如:將多行輸出改成單行輸出??????????? cat sed.sh | xargs
??????????? 或?qū)涡休敵龈某啥嘈休敵?#xff0c;指定每行n個參數(shù)。? cat sedd.sh | xargs -n 4
實例:
???????????????????? 需求:用-d選項指為輸入指定一個定界符
???????????????????????????????? echo "123123123123123123123123132" | xargs -d 3
轉(zhuǎn)載于:https://blog.51cto.com/linuxmylife/959546
總結(jié)
- 上一篇: phpMyAdmin 尝试连接到MySQ
- 下一篇: 微软五月份安全补丁发布