7비트 8진수 형식의 파일 모드

7비트 8진수 형식의 파일 모드

rpm --dump파일 패턴은 7자리 8진수 형식으로 인쇄됩니다.

$ rpm -q --dump rpm | grep -E '/usr/bin/rpmdb|/var/lib/rpm ' | cut -d' ' -f1,5
/usr/bin/rpmdb 0100755
/var/lib/rpm 040755
$

이 숫자들은 모두 무엇을 의미하나요? 이 중 일부는 파일 유형과 관련이 있는 것 같지만 기존 파일과 표준 명령줄 도구(필요한 경우 + perl/python 등)가 있다는 점을 고려하면 동일한 문자열을 재현할 수 있습니까?

나는 아무 것도 나타내지 않는(그냥 "모드" 필드라고 함) rpm(1)과 일반적인 4비트 모드만 언급하는 stat(1)을 살펴보았습니다. 내가 얻은 가장 가까운 것은 다른 것이었습니다AIX의 6자리 숫자 형식에 대한 질문.

편집: 때로는 6자리인 경우도 있지만 문제는 기본적으로 동일합니다.

답변1

이것은 구조 st_mode의 필드 입니다 stat. 파일 유형과 모드 비트를 인코딩합니다. Linux 시스템에서는 "파일 유형 및 모드" 섹션을 검색하고 man 2 stat(또는 ) 검색하십시오. man 7 inode예를 들어, 0100755는 "모드 755의 일반 파일"을 의미하고 040755는 "모드 755의 디렉터리"를 의미합니다.

그런데 앞의 0은 헤더 파일에 이 값이 지정되어 있으므로 "8진수"를 의미합니다. 자릿수는 중요하지 않습니다. 단지 전체 값을 포함하는 데 필요한 자릿수일 뿐입니다.

관련 정보