2012-01-05 41 views
1

好吧,這麼簡單..我想遞歸搜索具有特定擴展名的文件的目錄 - 然後對這些文件執行操作。如何返回遞歸匹配參數的絕對路徑? (BASH)

# pwdENTER
/dir

# ls -R | grep .txt | xargs -I {} open {}ENTER
The file /dir/reallyinsubfolder.txt does not exist.⬅失敗(壞)
不輸出,但成功.. /dir/fileinthisfolder.txt⬅打開默默(好)

做找到所有的文件,我在之間......但只有OPEN的碰巧是「1級」的。在這種情況下,嘗試打開/dir/reallyinsubfolder.txt失敗,因爲reallyinsubfolder.txt實際上是/dir/sub/reallyinsubfolder.txt

我明白grep的是簡單地返回匹配的文件名......然後扼流圈(在這種情況下),open命令,因爲它不能達到下來到正確的子目錄執行文件..

如何獲得grep以返回匹配的完整路徑?

回答

1
find . -name *.txt -exec open {}; 

(裝飾用你需要的反斜槓)

2

如何使用find命令 -

find /path/to/dir -type f -iname "*.txt" -exec action to perform {} \;