Linux 仅在bash脚本中检查可执行文件时,是否对文件夹和可执行文件进行计数?
我的代码是:Linux 仅在bash脚本中检查可执行文件时,是否对文件夹和可执行文件进行计数?,linux,bash,shell,scripting,Linux,Bash,Shell,Scripting,我的代码是: 函数CountEx() { echo“此目录中的可执行文件数为:$count” } 虽然 我是这样使用它的: yaser.sh -x ./folder 输出是文件+文件夹的数量文件夹上的可执行位具有特殊意义,并且是最常设置的。尝试筛选具有可执行位的常规文件: if [[ -f "$file" -a -x "$file" ]]; 当然,整个练习可以简化为find: find $folder -maxdepth 1 -type f -executable -ls | wc -l
函数CountEx()
{
echo“此目录中的可执行文件数为:$count”
}
虽然
我是这样使用它的:
yaser.sh -x ./folder
输出是
文件+文件夹的数量
文件夹上的可执行位具有特殊意义,并且是最常设置的。尝试筛选具有可执行位的常规文件:
if [[ -f "$file" -a -x "$file" ]];
当然,整个练习可以简化为find
:
find $folder -maxdepth 1 -type f -executable -ls | wc -l
可能是目录中的所有文件都设置为可执行权限。如果您只想检查elf文件,那么使用file命令和grep for elf
file $file | grep elf > /dev/null
if [ $? -eq. 0 ] ; then
count = `expr $count + 1`
fi
我说的对吗,您希望只使用shell脚本在目录中查找可执行文件?为什么不想使用
find
?在bash
中,有几种方法可以在不使用外部程序的情况下增加值expr
;最简洁的是((count+=1))
。与现有代码最相似的是count=$((count+1))
。我不认为所有版本的find
都有-executable
标志。您可以使用-perm+111
作为替代方案。非常感谢您的帮助:)