首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

有关问题:执行目录下运行所有可执行文件然后输出的脚本

2012-03-09 
问题:执行目录下运行所有可执行文件然后输出的脚本首先是如何查找当前目录下的所有可执行文件find . -maxd

问题:执行目录下运行所有可执行文件然后输出的脚本
首先是如何查找当前目录下的所有可执行文件

find . -maxdepth 1 -perm +111

这里设置 -perm +111 体现所有有执行权限的文件,但是似乎输出并不准确,输出了很多目录。
且一些文件并非可执行的,但可设置x权限。 不知道有没有什么好的办法。

此外,脚本我写成
for i in 'find .....’
do 
exec $i > outfile
done

似乎也有问题, 且再当前目录在执行所有文件会不会递归调用当前这个脚本?

谢谢。





[解决办法]

探讨
首先是如何查找当前目录下的所有可执行文件
find . -maxdepth 1 -perm +111

[解决办法]
寻找可执行的文件,也可用file命令,例如
file * | grep executable
这样所有的可执行文件、shell都可以被找到,而目录和其他类型的文件都不会出现。

缺点是不检测x权限

建议和x权限的检测一起使用。
[解决办法]
owenliang@linux-7lsl:~/csdn/src> find . -maxdepth 1 -perm -111 | xargs -n 1 file | egrep "executable" | cut -d ':' -f 1
./client
./server
./main
[解决办法]
哦,我是从楼上拷贝下来的,没仔细看哈

for i in `file * | awk -F: '$0~/executable/ {print $1}'`
这样改改

热点排行