我想这样做:
ls * | grep pattern
但我希望不仅仅显示具有模式的文件,还显示与模式匹配的文件的完整路径。
答案1
一种方法是使用find
来进行匹配,但您可能必须更改模式以匹配find
语法而不是grep
s,因为我认为它们并不相同。
find "$PWD" -maxdepth 1 -regex 'pattern'
应该会显示完整路径,并且-maxdepth
会阻止它进入子目录。如果您只想使用 globs 而不是正则表达式,则可以使用-name 'glob'
语法,然后*
像使用 一样使用ls
。
这是我看到的一个示例输出:
$ find "$PWD" -maxdepth 1 -regex '.*sh$'
/home/erenouf/tmp/scratch/t.sh
/home/erenouf/tmp/scratch/parseIW.sh
/home/erenouf/tmp/scratch/output.sh
因为我~/tmp/scratch
当时正在查找以sh
在这种情况下,我可以使用以下方法获得相同的输出
find "$PWD" -maxdepth 1 -name '*sh'
要让它在子目录中查找,您只需删除-maxdepth 1
每个命令的一部分即可