파일의 chmod 숫자 값을 얻습니다


100

FreeBSD와 Linux에서도 chmod파일 의 수치를 어떻게 얻을 수 있습니까? 예를 들어 ? 644대신 -rw-r--r--Bash 스크립트에 대한 자동 방법이 필요합니다.

답변:


159

BSD / OS X와 ​​같은 통계 출력 형식을 사용하여 직접 값을 얻을 수 있습니다.

stat -f "%OLp" <file>

또는 리눅스에서

stat --format '%a' <file>

그리고 busybox에서

 stat -c '%a' <file>

감사합니다. 첫 번째 질문이므로 답변으로 선택되었으며 가장 간단한 것으로 보입니다.
stefan.at.wpf

5
에서 busybox사용stat -c '%a' <file>
스튜어트 Cardall

1
작은 따옴표는 필요하지 않으며 --format축약 될 수 있습니다 -c. 이것은 작동합니다.stat -c %a <file>
johny 왜

우분투에서 busybox 답변이 필요했습니다. 그렇지 않으면 'stat :'% OLp '에 대한 파일 시스템 정보를 읽을 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다'
tofutim

7

다음 stat YOUR_FILE을 계산하는 스크립트를 작성하지 않는 한 사용하십시오 .

rwx rwx rwx ==> ( r = 4 ) if set + ( w = 2) if set + (x = 1) if set , for example:
You have :
-rw-wxrw- => (4+2+0)(0+2+1)(4+2+) = 0636 
First argument before 9 permissions is one of :
- = regular file
d =  directory
b = block device
c = character device
s = socket
p = pipe
f = fifo

그건 그렇고, 내가 사용 stat commandLinux box하지, freebsd그것을 조사하기 때문에, HFS작업 아마 UFS.


네, 아래에 그것을 발견 FreeBSD box, 사용 stat -x YOUR_FILE아래FreeBSD box
페르시아 만

stat -r YOUR_FILE |awk '{print $3}' 당신의 허락을줍니다.
PersianGulf

친근감을 보여주는 명령? 숫자 666 또는 코드 -rw-wxrw- 뿐만 아니라 각 권한에 대한 설명이 포함 된 텍스트
Peter Krauss

@PeterKrauss, awk수치 결과를 검색 하는 것이 좋습니다 .
페르시아 걸프

감사합니다 @PersianGulf. 흠 ... 없음 플러그 앤 플레이하지 표준 방법 ...
피터 크라우스

2

에 대한 추가 정보 stat:

$ stat -c %a file.txt

777  

$ stat -c %A file.txt

-rwxrwxrwx

그것은 stat -f %A file.txt맥에서 644 또는 다른 3 개의 디지털 숫자를 반환합니다.
Weijing Jay Lin

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.