모든 실행 파일을/bin에서 찾아야합니다. 사용 방법현재 디렉토리에서 실행 파일을 찾고 확장자를 찾는 방법은 무엇입니까?
find . -executable
및 파일이 스크립트 (예 : sh, pl, bash)인지 확인하는 방법은 무엇입니까?
모든 실행 파일을/bin에서 찾아야합니다. 사용 방법현재 디렉토리에서 실행 파일을 찾고 확장자를 찾는 방법은 무엇입니까?
find . -executable
및 파일이 스크립트 (예 : sh, pl, bash)인지 확인하는 방법은 무엇입니까?
#!/bin/bash
for file in `find /bin` ; do
if [ -x $file ] ; then
file $file
fi
done
심지어 더 나은
find /bin -type f -perm +111 -print0 | xargs -0 file
find /bin/ -executable
은 /bin/
디렉토리의 모든 실행 파일을 반환합니다.
필터링 확장에는 -name
플래그가 사용 가능합니다. 예를 들어, find /bin/ -executable -name "*.sh"
은 sh
- 스크립트를 반환합니다.
UPD :
파일이 바이너리 파일이 아닙니다 및 shabang에서 그것의 유형을 파악하기 위해 확장이없는, 그것은 가능합니다.
예를 들어 find ~/bin/ -executable | xargs grep --files-with-matches '#!/bin/bash'
은 #!/bin/bash
을 포함하는 ~/bin/
디렉토리의 파일을 반환합니다.
할 ...
find ./ -type f -name "*" -exec sh -c '
case "$(head -n 1 "$1")" in
?ELF*) exit 0;;
MZ*) exit 0;;
#!*/ocamlrun*)exit0;;
esac
exit 1
' sh {} \; -print
는 스크립트가 쉘 모두 찾으려면
find . -type f -executable | xargs file -i | grep x-shellscript | cut -d":" -f1
모든 실행 파일을 찾으려면
find . -type f -executable | xargs file -i | grep x-exec | cut -d":" -f1
는
find . -type f -executable | xargs file -i | grep x-sharedlib | cut -d":" -f1
이 하위 디렉토리를 걸러 당신의 find 명령에'타입 f'를 추가 모든 공유 라이브러리를 찾을 수 있습니다. –
/bin에 실행 파일이 아닌 파일이 있습니까? – uzsolt