MacOsx - 셸 - 특정 폴더 내의 모든 .php 파일과 해당 파일의 8진수 권한을 나열합니다.

MacOsx - 셸 - 특정 폴더 내의 모든 .php 파일과 해당 파일의 8진수 권한을 나열합니다.

디렉토리에 있는 모든 ".php" 파일과 해당 파일의 8진수 권한을 나열하는 것이 가능합니까?

나는 그것들을 다음과 같이 나열하고 싶다:

775 /folder/file.php
644 /folder/asd/file2.php
etc...

답변1

find /folder -name '*.php' -type f -print0 |
  perl -0 -lne 'printf "%o %s\n", (lstat $_)[2]&07777, $_'

이 관련 질문도 참조하십시오.ls -l 출력 형식을 chmod 형식으로 변환.

-print0GNU 확장이며 OS/X와 같은 BSD에서도 지원됩니다. GNU에는 모드를 표시할 수 있는 조건자가 find있지만 -printf이 조건자는 BSD의 find.

(OS/X 10.8.4 및 Debian 7에서 테스트되었지만 모든 GNU 시스템 및 모든 최신 BSD를 포함하여 모든 버전 perl의 모든 시스템에서 작동해야 합니다)find -print0

답변2

find /some/path -type f -name "*.php" -exec sh -c 'stat -f "%p %N" "{}" | sed -E s/^.{3}//' \;

이는 OS X 10.8.4에서 테스트되었습니다. sed 파이프는 출력(파일 형식)에서 처음 3자를 제거합니다. OS X은 stat직접 8진수 권한 출력을 지원하지 않는 것 같습니다 .

관련 정보