1. 程式人生 > >使用find在目錄中查詢檔案的常用用法

使用find在目錄中查詢檔案的常用用法

有時候要找幾年前存在電腦裡的檔案,不但位置忘記了,就連檔名都忘記的差不多了,怎麼辦?可以使用linux或者cygwin下的find命令,只要對檔名還有一些印象,就可以。

1. 使用正則表示式。正則表示式實在是字串匹配最好用的東東了,無論是用grep和sed在檔案中查詢符合條件的行,還是使用find來查詢符合條件的檔名,都要用到正則表示式,靈活!怎麼使用呢,很簡單,使用選項-regex,即可,預設的是正則表示式的方法是posix的,如果不熟悉,可以使用選項-regextype來進行修改,具體引數可以通過man find來檢視。

例子:在d盤查詢多年前寫的一個培訓用的ppt,檔名已經記不得了,只知道是個ppt或者pptx。使用如下命令:

首先cd到d盤: cd /cygdrive/d

然後搜尋:find -regex '.*pptx?'

會比較慢,如果d盤下檔案很多。

2. 有時候,寫程式需要,就想把當前資料夾的符合條件的檔名找出來,而不用去管其子資料夾的內容,怎麼辦?使用-maxdepth來限制最大查詢深度為1,即可,如果設定為2,則表示查詢當前資料夾和第一層子資料夾。

例子,在d:\tmp中查詢txt檔案,不在d:\tmp\test中去查詢

find -maxdepth 1 -regex '.*\.txt$'