find命令中用了-path 參數,則文件名是匹配shell通配符模式。這時候,元字符不能識別 '/ ' 和 ' . ' 。舉個例子
假設/root 目錄下有四個文件,其絕對路徑分別為:
復制代碼代碼如下: /root/src/misc
/root/src/test/misc
/root/src1misc
/root/test/src/misc
這時候輸入下面的命令:
復制代碼代碼如下: [[email protected] ~]# cd /root
[[email protected] ~]#find . -path './sr*sc'
./src1misc
./src/misc
./src/test/misc
命令運行輸出的結果不是文件名,而是文件的路徑
可見,文件夾符號/ 在此時也可以用 * 通配符匹配,而且 * 是可以匹配n多個字符。上面的命令行的意思是是在當前目錄下及子目錄遞歸查找文件路徑 匹配的文件,所以輸出的是文件的路徑。
因為是'./sr*sc' ,所以 /root/test/src/misc這個文件不匹配,因為 ./ 代表當前目錄 (即/root) ,而 /root/test/src/misc不符合 ./sr的格式。
但是稍微改一下,如下:
復制代碼代碼如下: [[email protected] ~]#find . -path '*/sr*sc*'
./src1misc
./src/misc
./src/test/misc
./test/src/misc
解釋:因為" * " 可以匹配 "." 和 " / ", 我們將上面的'*/sr*sc*' 改為 '*sr*sc*' 。結果也是一樣的。
注意:也可以直接用絕對路徑
復制代碼代碼如下: [[email protected] ~]#find /root -path '*/sr*sc*'
而
復制代碼代碼如下: [[email protected] ~]#find /root -path '/root/sr*sc*'
/root/src1misc
/root/src/misc
/root/src/test/misc
此時, /root/test/src/misc 是不符的'/root/sr*sc*'的格式的。
所以Linux / Unix:遞歸查找並列出所有(全部)隱藏文件的方法可以如下:
復制代碼代碼如下: [[email protected] ~]#find /要查找的文/件/夾/ -path '*/.*' -print
教程完!