列出特定扩展名的文件
好的,这很奇怪。 我正在使用此代码,
ls *.prj
要在dir中列出扩展名为.prj的所有文件,但是我收到此错误,
bash:/ bin / ls:参数列表太长了
我最终希望得到文件的数量,我正在使用,
ls * .prj | wc -l
但即使这个命令也会出现同样的错误。 知道我哪里错了吗?
没什么,bash可以处理的参数数量有限制。 做
ls | grep '\.prj$' | wc -l
请改用find
命令
find . -name "*.prj"
您还可以将命令与find结合使用
find . -name "*.prj" -exec COMMAND {} \;
希望这可以帮助。
解析ls
的输出是不可靠的 。 它可能会适用于您的情况,但是会破坏不可打印的字符。 这是一种完全可靠的方法来计算与特定扩展名匹配的文件。 此shell片段创建一个包含文件名的数组,然后打印数组中的元素数。
a=(*.prj) echo ${#a[@]}