방법 # 1-통계
이 stat
명령을 사용하여 권한 비트를 얻을 수 있습니다 . stat
대부분의 유닉스 (OSX, BSD, 내가 찾을 수있는 AIX가 아닌)에서 사용할 수 있습니다. 이것은 내가 찾을 수있는 OSX 및 BSD를 제외하고 대부분의 유닉스에서 작동합니다.
$ stat -c "%a" <file>
예
$ ls -l a
-rw-rw-r-- 1 saml saml 155 Oct 6 14:16 afile.txt
이 명령을 사용하십시오 :
$ stat -c "%a" afile.txt
664
그리고 grep
그룹 권한 모드가 6 또는 7인지 확인하려면 간단하게 사용 하십시오.
$ stat -c "%a" afile.txt | grep ".[67]."
OSX와 BSD 위해 당신은이 양식을 사용 할 것 stat
, stat -f
(혹은 stat -x
), 그에 따라 구문 분석합니다. 옵션 stat
이 다르므로이 명령을 명령으로 감싸서 lsb_release -a
OS에 따라 적절한 버전을 호출 할 수 있습니다. 이상적이지 않지만 실행 가능합니다. 그 실현 lsb_release
입니다 리눅스 배포판에서만 사용할 수 있도록 다른 대안은 다른 유닉스 운영체제를 테스트하기 위해 고안 될 필요가있을 것이다.
방법 # 2-찾기
나는이 명령이 당신에게 더 잘 도움이 될 것이라고 생각합니다. 내가 사용하게 find
하고 printf
스위치를.
예
$ find a -prune -printf '%m\n'
664
방법 # 3-Perl
Perl은 다루려는 OS에 따라 더 이식성이 좋은 방법 일 수 있습니다.
$ perl -le '@pv=stat("afile.txt"); printf "%04o", $pv[2] & 07777;'
0664
참고 : 위는 stat()
파일 시스템 비트를 쿼리하기 위해 Perl의 기능을 사용합니다.
array을 사용하지 않고 직접 @pv
출력을 처리 하여 이보다 컴팩트하게 만들 수 있습니다 stat()
.
$ perl -le 'printf "%04o", (stat("a"))[2] & 07777;'
0664