디렉토리에 있는 모든 ".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 형식으로 변환.
-print0
GNU 확장이며 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진수 권한 출력을 지원하지 않는 것 같습니다 .