2012-01-05 55 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 {} \;