BASH - 计算可执行文件的数量

发布于 2024-12-27 17:18:25 字数 248 浏览 0 评论 0原文

我试图在一个文件夹中找到可执行文件及其总数,它显示但总数不是这是我下面的代码,如果我犯了错误,有人可以帮助我吗,我只是一个试图学习一些 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

Im trying to find the executables files and their total in a folder,its showing but the total is not this is my code below,can someone help me out were i am making mistakes,i am just a newbie trying to learn some bash scripting hope this is the right way of doing it thanks

#!/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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

二货你真萌 2025-01-03 17:18:25

如果您想查找所有可执行文件,请使用以下命令:

find home/magie/d2 -type f -perm -u+rx | wc -l

或者

find home/magie/d2 -type f -perm +111 | wc -l

这里的所有答案都是仅查找具有权限 755 的文件,但请记住,即使 744 或 700 也是用户的可执行文件。

If you want to find all the executable files then use this command:

find home/magie/d2 -type f -perm -u+rx | wc -l

OR

find home/magie/d2 -type f -perm +111 | wc -l

All the answers here are finding files with permission 755 only however keep in mind even 744 or 700 are also executable files by the user.

傲鸠 2025-01-03 17:18:25

只需删除 if 结构和 echo

#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755

find . -type f -perm 755 | wc -l

Just remove the if structure and the echo's

#!/bin/bash
To="home/magie/d2"
cd "$To"
find . -type f -perm 755

find . -type f -perm 755 | wc -l
碍人泪离人颜 2025-01-03 17:18:25

使用 /111 查找设置了任何执行位的任何文件。

寻找 。 -类型 f -perm /111 |厕所-l

Use /111 to find any file that has any of the execute bits set.

find . -type f -perm /111 | wc -l

双马尾 2025-01-03 17:18:25

我想我会做这样的事情:

#!/bin/bash
dir=$1
files="$(find $dir -perm 755)"
total=$(wc -l <<< "$files")
echo "$files"
echo "Total: $total"

所需的目录必须作为命令行中的参数传递,并且引号用于保留 wc 稍后所需的换行符以正确计算数量的线路。

I think I'd do something like this:

#!/bin/bash
dir=$1
files="$(find $dir -perm 755)"
total=$(wc -l <<< "$files")
echo "$files"
echo "Total: $total"

where the desired directory has to be passed as an argument in the command line and the quotes are used to preserve line breaks needed later by wc to correctly count the number of lines.

夏花。依旧 2025-01-03 17:18:25

从命令行,一个简单的一行代码就可以解决问题 -

wc -l < <(find /home/magie/d2 -type f -perm 755)

<(..)进程替换

From the command line a simple one-liner should do the trick -

wc -l < <(find /home/magie/d2 -type f -perm 755)

<(..) is process substitution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文