我很难找到在当前目录及其子目录中查找匹配。
当我运行find *test.c时,它只给我当前目录中的匹配项。(不查看子目录)
如果我试着找到。我希望得到相同的结果,但它只给我子目录中的匹配项。当工作目录中有应该匹配的文件时,它给我:find: paths必须在expression: mytest.c之前
这个错误是什么意思,如何从当前目录及其子目录中获得匹配?
我很难找到在当前目录及其子目录中查找匹配。
当我运行find *test.c时,它只给我当前目录中的匹配项。(不查看子目录)
如果我试着找到。我希望得到相同的结果,但它只给我子目录中的匹配项。当工作目录中有应该匹配的文件时,它给我:find: paths必须在expression: mytest.c之前
这个错误是什么意思,如何从当前目录及其子目录中获得匹配?
当前回答
你可以试试这个:
cat $(file $( find . -readable) | grep ASCII | tr ":" " " | awk '{print $1}')
这样,您就可以用ASCII找到所有可读的文件,并使用cat读取它们
如果你想指定他的权重和不可执行的:
cat $(file $( find . -readable ! -executable -size 1033c) | grep ASCII | tr ":" " " | awk '{print $1}')
其他回答
实际情况是shell将“*test.c”展开为一个文件列表。尝试转义星号为:
find . -name \*test.c
看来这个问题已经有答案了。我只是想分享对我有用的东西。我在(和名字)之间漏了一个空格。因此,选择一个文件排除其中一些的正确方法如下所示;
find . -name 'my-file-*' -type f -not \( -name 'my-file-1.2.0.jar' -or -name 'my-file.jar' \)
试着把它放在引号里:
find . -name '*test.c'
你可以试试这个:
cat $(file $( find . -readable) | grep ASCII | tr ":" " " | awk '{print $1}')
这样,您就可以用ASCII找到所有可读的文件,并使用cat读取它们
如果你想指定他的权重和不可执行的:
cat $(file $( find . -readable ! -executable -size 1033c) | grep ASCII | tr ":" " " | awk '{print $1}')
当我试图找到多个文件名时,我遇到了这个问题,我不能组合成一个正则表达式,正如@Chris J的回答所描述的那样,下面是对我有用的方法
find . -name one.pdf -o -name two.txt -o -name anotherone.jpg
-o或-or是逻辑或。更多信息请参见Gnu.org上的查找文件。
我在CygWin上运行这个。