2016-10-25 7 views
0

내 프로그램에 대한 조언이 필요합니다. bash에서 인덱스가있는 디렉토리에 실행 파일을 표시하고 인덱스로 파일을 실행해야합니다. 것이 가능하다? 실행 파일 표시 및 실행

이 디렉토리에있는 모든 실행 파일을 나열하려면 응답

+0

그래서 당신은 인덱스 필터링 및 특정 인덱스를 실행하거나 디렉토리에있는 모든 실행 파일을 실행하려면? – ritesht93

답변

0

주셔서 감사합니다, 당신은 시도 할 수 있습니다 :

ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }' 

이 명령은 -rwxr-xr-x 사용하여 파일의 이름을 인쇄합니다. 필요에 맞게 재정렬 할 수 있습니다. 당신은 실행 파일의 원하는 목록을 때

,이를 실행

for i in $(ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }'); do ./$i; done  
+0

'ls' 출력을 파싱하는 것이 약합니다. 이 경우 파일은 소유자, 그룹 및 전 세계에 대해 실행 가능해야하며, 이는 올바른 것 일 수도 있고 그렇지 않을 수도 있습니다. 대신'find -executable'을 쓰지 않으시겠습니까? 또는'[-x $ file]'? 여기에있는 다른 사람들은'$ (...)'대신 backticks를 사용하는 것에 대해 불평 할 수도 있습니다. – Robert

+0

귀하의 의견에 감사드립니다, 나는 내 대답을 편집! – andreatsh

1

find 명령은 조금 복잡하지만 매우 유용 할 것 같습니다 :

찾기. -maxdepth 1 -type f -perm -a = rx -exec echo Exec {} \;

  • -maxdepth 1 : 만 일반 파일 (안 디렉토리)
  • -perm -a = RX : 대부분의 수준에서 1
  • 타입 F 내려 소유자
  • 에 대한 읽기 및 실행 - exec Exec {} \; : 발견 된 각 파일에 대해 echo 파일을 실행합니다.

테스트 :

find . -maxdepth 1 -type f -perm -a=rx -exec echo Exec {} \; 
Exec ./kl.sh