2013-12-08 1 views
1

실행 파일이 들어있는 모든 폴더를 찾기 위해 스크립트를 작성했습니다. 나는 처음으로 oneliner 명령을 찾고 있었지만 찾을 수있었습니다. (특히 sort -k -u를 사용하려고했습니다).실행 파일이있는 폴더 찾기

. 스크립트는 정상적으로 작동하지만 초기 질문은 그대로 남아 있습니다. 수행 할 수있는 oneliner 명령이 있습니까?

#! /bin/bash 
find $1 -type d | while read Path 
do 
X=$(ls -l "$Path" | grep '^-rwx' | wc -l) 
if ((X>0)) 
then 
    echo $Path 
fi 
done 
+0

가능한 중복 : http://stackoverflow.com/questions/4458120/unix-find-search-for-executable-files 당신의 대답이 있습니다. –

+0

@HermanTorjussen :이 질문은 제안 된 dup과 약간 다른 실행 파일이있는 디렉토리를 찾는 것에 관한 것입니다. – Mat

답변

3

사용 발견은 :

find $1 -type f -perm /111 -exec dirname {} \; | sort -u 

이 권한 (111) (즉 rwx) 만 디렉토리 이름 우리 출력 모든 파일을 찾습니다. 중복을 피하기 위해 sort -u이 사용됩니다.

바와 같이 코멘트에 Paulo Almeida 지적, 이것은 또한 작동합니다 :

find $1 -type f -perm /111 -printf "%h\n" | sort -u 
+0

-perm + nnn 형식은 더 이상 사용되지 않으며 대신/111을 사용하십시오. – denarced

+0

고마워, 나는 그걸 몰랐다. 내 대답을 편집했습니다. – pfnuesel

+0

'-printf "% h \ n"'와 같은 것을 사용하여'dirname'을 호출하지 않아도됩니다. –