2013-11-25 60 views
-2

如何查找带或不带可执行权限的二进制文件?
我在bash脚本,将列出一个路径:
*共享对象文件,
*脚本,可执行文件,
*静态库
它不应该像显示的.o中间文件(对象文件)。查找可执行文件,也是那些未标记的可执行文件

+0

你的意思是找到那些没有执行位所有二进制ELF文件? – nrathaus

+0

是的,nrathaus,我有目录下的数目混杂在一起(如在树中),他们没有执行权限:-rw-rw-r--,我知道它们包含可执行文件,如何查找/列出可执行文件? – AjayKumarBasuthkar

+0

欢迎来到StackOverflow!所以。提供了一种机制,您可以请求帮助修复代码中的错误。你有什么尝试? – ghoti

回答

0

这为我工作&思想的共享......

find ./ -type f -name "*" -not -name "*.o" -exec sh -c ' 
    case "$(head -n 1 "$1")" in 
     ?ELF*) exit 0;; 
     MZ*) exit 0;; 
     #!*/ocamlrun*)exit0;; 
    esac 
exit 1 
' sh {} \; -print 
0

基于内容的file方案报告的文件类型,位于/ bin所以

file /bin/* | awk -F: '/executable/{print $1}' 

报告潜在/实际可执行文件。

+0

我希望列出层次结构中的所有文件。 我试过了:find ./ -name“*”| xargs文件| awk -F:'/ executable/{print $ 1}' 无效。 – AjayKumarBasuthkar

+0

我试过find | xargs | awk管道,并且它报告的每个文件都采用某种可执行格式。 – arnt

+0

在我的情况下,它丢失了许多可执行文件。 – AjayKumarBasuthkar

1

您可以使用:

find . -type f -print0 | xargs -0 -n 10 file -i | grep "application/x-executable" 
+0

BTW:它从这里取:http://unix.stackexchange.com/questions/40063/how-to-find-executable-filetypes – nrathaus

+0

它显示“一些”的可执行文件,不是全部。 – AjayKumarBasuthkar

+0

它运行相对于你的路径,进入“/”运行前它 – nrathaus