我试图在一个文件夹中查找可执行文件及其总数,但它显示的总数不是这是我的下面的代码,有人可以帮助我,因为我犯了错误,我只是一个新手试图学习一些bash脚本希望这是正确的做法,谢谢
#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755
if
find . -type f -perm 755
then
echo | echo wc -l
fi
答案 0 :(得分:3)
如果要查找所有可执行文件文件,请使用以下命令:
find home/magie/d2 -type f -perm -u+rx | wc -l
OR
find home/magie/d2 -type f -perm +111 | wc -l
此处的所有答案都是查找具有权限755的文件,但请记住,即使744或700也是用户的可执行文件。
答案 1 :(得分:2)
只需删除if
结构和echo
的
#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755
find . -type f -perm 755 | wc -l
答案 2 :(得分:2)
我想我会做这样的事情:
#!/bin/bash
dir=$1
files="$(find $dir -perm 755)"
total=$(wc -l <<< "$files")
echo "$files"
echo "Total: $total"
其中所需目录必须作为参数在命令行中传递,而引号用于保留wc
稍后需要的换行符,以正确计算行数。
答案 3 :(得分:2)
使用/ 111查找任何设置了执行位的文件。
找到。 -type f -perm / 111 | wc -l </ p>答案 4 :(得分:1)
从命令行开始,一个简单的单行程应该可以解决问题 -
wc -l < <(find /home/magie/d2 -type f -perm 755)
<(..)
是process substitution。