>

파일 명령 출력으로 "Mach-O executable"이있는 파일에 대한 권한을 755로 수정해야하는 쉘 명령에 도달하려고합니다.

나는 이것에 도착할 수 있었다- find . -type f -exec file {} \; | grep executable

그러나 어떻게 그들에게 755를 chmod합니까?


  • 답변 # 1

    find . -type f -exec file {} + |
    sed -n -e '/Mach-O .* executable/s/:.*//p' |
    xargs chmod 755
    
    
    + 를 사용하여   \; 대신 file  명령이 덜 자주 실행됩니다 ( xargs 와 약간 유사합니다)  ). 와이즈 비즈  기본적으로 명령이 인쇄되지 않습니다 ( sed )이지만 Mach-O 실행 파일을 찾고 -n 이후의 자료를 제거합니다.  파일 이름 다음에 파일이 나열됩니다. 그리고 :  명령이 xargs 를 실행합니다  인수에 대해서는 표준 입력에서 읽습니다. 줄 바꿈, 공백, 탭 및 기타 홀수 문자가 포함 된 실행 파일 이름이 없다고 가정하면 작업을 수행해야합니다. POSIX 휴대용 파일 이름 문자 세트를 고수하지 않으면 더 열심히 노력해야 할 수도 있습니다.

    현재 디렉토리에 실행 파일이없는 경우 chmod 755 에서 사용 메시지가 표시됩니다.   chmod 때문에  인수가 없어도 명령을 한 번 실행합니다. GNU xargs  옵션 xargs 가 있습니다  명령의 '빈 상태에서 실행'호출을 피하기 위해;macOS의 버전은이를 지원하지 않습니다.

  • 답변 # 2

    -r 만 사용하십시오. + 와이즈 비즈 :

    gawk
    
    
    xargs

  • 이전 javascript - 팝업 경고 안에 드롭 다운 버튼을 만드는 방법은 무엇입니까?
  • 다음 python - Django에서 사용자 인증 is_active false 플래그가 작동하지 않습니다