ls -al 출력의 필드는 무엇을 의미합니까?

ls -al 출력의 필드는 무엇을 의미합니까?

ls -al명령은 다음 출력을 표시합니다.

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe

이전에 표시된 필드는 모두 무엇입니까?

답변1

출력 순서별;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • 파일 권한( -rwxrw-r--),
  • (하드) 링크 수 ( 1),
  • 소유자 이름 ( root),
  • 소유자그룹( root),
  • 파일 크기(바이트 2048),
  • 마지막 수정 시간( Jan 13 07:11) 및
  • 파일/디렉토리 이름( afile.exe)

파일 권한은 다음과 같이 표시됩니다.

  • 첫 번째 문자는 가장 일반적 -으로 l또는 입니다 d. A는 d디렉토리를 나타내고, a는 심볼릭 링크(또는 소프트 링크)인 -일반 파일을 나타내며 , 기타 문자는 다른 유형의 특수 파일에 사용됩니다.l
  • 소유자, 그룹 및 기타 권한을 나타내는 3개의 문자 집합(3번):
    • r = 읽을 수 있음
    • w = 쓰기 가능
    • x = 실행 가능(파일의 경우) 또는 액세스 가능(디렉토리의 경우)
  • 다음에는 로 표시된 것과 같이 확장된 권한을 가진 다른 문자가 올 수 있습니다 +.

귀하의 예에서 -rwxrw-r--이는 표시된 줄이 다음과 같다는 것을 의미합니다.

  • 일반 파일( 로 표시됨 -)
  • 소유자는 읽기, 쓰기 및 실행 가능합니다( rwx).
  • 그룹을 읽고 쓸 수 있지만 실행할 수는 없습니다( rw-).
  • 다른 사용자는 읽을 수 있지만 쓰거나 실행할 수는 없습니다( r--).

하드 링크의 수는 inode가 가지고 있는 이름의 수, 즉 생성된 링크의 수를 의미합니다.ln 아니요옵션 -s.

답변2

"ls" 명령의 출력은 "ls" 버전, 사용된 옵션, 사용된 플랫폼 등에 따라 달라집니다. 귀하의 예를 보면 일반적인 un*x(예: Linux) 및 아마도 일반적인 최신 "ls" 버전에서 사용하고 있는 것으로 보입니다. 이 경우:

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe
?UUUGGGOOOS   00  UUUUUU GGGGGG ####    MON DD XX:XX FILENAME
^ ^  ^  ^ ^    ^      ^      ^    ^      ^            ^- Filename.
| |  |  | |    |      |      |    |      \-------------- Time of last modification.
| |  |  | |    |      |      |    \--------------------- File Size OR for directory size of the metadata. (Size is *usually* in bytes on modern systems; See below.)
| |  |  | |    |      |      \-------------------------- Group Name (for example, Users, Administrators, etc)
| |  |  | |    |      \--------------------------------- Owner Acct
| |  |  | |    \---------------------------------------- Link count (what constitutes a "link" here varies)
| |  |  | \--------------------------------------------- Alternative Access (blank means none defined, anything else varies)
| \--\--\----------------------------------------------- Read, Write and Special access modes for [U]ser, [G]roup, and [O]thers (everyone else)
\------------------------------------------------------- File type flag        

귀하가 나열한 예제 파일의 링크 수가 왜 그렇게 높은지 잘 모르겠습니다. 일부 플랫폼에는 "링크"를 구성하는 이상한 개념이 있습니다. 여기에는 일반적으로 하드 및 기호 링크와 디렉토리 항목이 포함됩니다(이것이 디렉토리가 일반적으로 링크 개수를 많이 갖는 이유입니다. 상위 디렉토리에 대한 링크가 있고 디렉토리에는 디렉토리 내 자체에 대한 링크가 있습니다).항목, 각 하위 디렉터리에는 반환 링크가 있습니다...).

일부 버전 및/또는 명령줄 플래그는 바이트 수 대신 사용된 블록 수를 나열합니다. 블록 크기가 1024바이트인 파일 시스템은 최대 1024바이트의 모든 크기를 "1"로 나열합니다. 이는 1블록을 사용함을 의미합니다. , 열 1025에서 2048은 "2"이고 2개의 블록을 사용하는 식입니다. 그러나 대부분의 최신 un*x 시스템에서는 명령줄 옵션을 명시적으로 사용하지 않고 기본적으로 블록 크기가 나열되는 경우가 거의 없습니다.

특수/대체 액세스 플래그는 일반적으로 공백이지만 일부 플랫폼에서는 특수/대체 액세스 모드(예: WIN32의 ACL 및 보안 설명자 등)의 존재를 나타내는 데 사용될 수 있으며 매우 다양합니다. 설명서를 참조하세요. 페이지, 정보 도구 등.

권한(모드) 플래그( UUUGGGOOO)는 3개의 문자로 구성된 세 그룹입니다. 여기서 첫 번째 그룹은 "사용자"(즉, 소유자), 두 번째 그룹은 "그룹", 세 번째 그룹은 "기타"(즉, 다른 사람)입니다. 둘 다 소유자 또는 그룹이 아닌 사람). 각 그룹의 세 가지 권한 플래그는 일반적으로 사용자/그룹/기타가 파일을 읽을 수 있는지( ) 또는 파일을 읽을 수 없는지( )를 나타내거나 나타내고, 그 뒤에 r파일 에 쓸 수 있는지 여부를 나타냅니다 . 에 쓸 수는 있지만 읽을 수는 없습니다. 이상하게 들립니다!), 세 번째 문자는 다른 모드에 대한 "포괄" 플래그로, 일반적으로 실행과 같습니다(디렉토리의 경우 이는 디렉토리에 액세스하려고 시도할 수 있음을 의미합니다). 내용) 또는 아무것도 없습니다. 때로는 setuid 및/또는 setgid 프로그램 또는 기타 덜 일반적인 문자가 표시될 패턴 문자를 알아보려면 설명서를 참조하세요 .-r-w-x-sSls

마지막으로 첫 번째 문자는 파일 유형입니다. 일반적 d으로 디렉토리, l기호 링크(하드 링크는 일반적으로 특수 문자 없이 표시됨) 또는 -일반 파일 중 하나입니다. 다양한 파일 시스템에 사용할 수 있는 다른 파일 형식은 많지만 덜 일반적인 파일 형식이 있습니다. 처음 10자(파일 형식 및 권한)에 대해 토론합니다.위키피디아에서. 다시 말하지만, 문서에서는 명령이 지원하고 표시하는 파일 형식을 정확하게 알려줍니다.

ls그런데, 자신의 매뉴얼/정보 페이지( man ls/ info ls) 를 찾을 수 없다면 info coreutils"coreutils" 패키지( )를 찾아보세요. 또한 Microsoft 플랫폼은 일반적인 플랫폼 중에서 출력으로 잘 변환되지 않는 경향이 있으므로 ls버전 컴파일 방법에 따라 출력에서 ​​이상한 동작, 플래그 또는 기타 비정상적인 정보가 나타날 수 있습니다. ls링크 내용에 대한 반대 , 등.

추가 참고사항: 파일 타임스탬프는 일반적으로 파일이 마지막으로 표시된 날짜/시간입니다.수정됨, 파일이 생성된 시간이 아닌 실제로 un*x-ish 파일 시스템에는 파일 생성 시간에 대한 기록이 없습니다. ctime 필드는 FAT/NTFS 파일 시스템에서처럼 "생성 시간"을 나타내지 않지만 "inode [C]변경 시간"을 나타냅니다. inode 자체가 마지막으로 수정된 시간입니다. "mtime"(마지막 [M] 수정됨) 및 atime(마지막 [A] 액세스/읽기) 타임스탬프는 두 시스템 모두에서 동일합니다. 하지만 정밀도(예: FAT의 세분성은 2초 단위임)와 시간대는 다를 수 있습니다.

답변3

lsGNU 시스템에서는 정보 페이지에 아주 자세하게 설명되어 있습니다. 그것을 찾으려면, 여러분이 해야 할 일은 다음과 같습니다: 문서를 열고 man ls마지막에 있는 전체 문서에 대한 링크를 찾으십시오: info coreutils 'ls invocation'.

여기에 인용문이 있습니다:

`-l'
`--format=long'
`--format=verbose'
     In addition to the name of each file, print the file type, file
     mode bits, number of hard links, owner name, group name, size, and
     timestamp (*note Formatting file timestamps::), normally the
     modification time.  Print question marks for information that
     cannot be determined.

     Normally the size is printed as a byte count without punctuation,
     but this can be overridden (*note Block size::).  For example, `-h'
     prints an abbreviated, human-readable count, and
     `--block-size="'1"' prints a byte count with the thousands
     separator of the current locale.

     For each directory that is listed, preface the files with a line
     `total BLOCKS', where BLOCKS is the total disk allocation for all
     files in that directory.  The block size currently defaults to 1024
     bytes, but this can be overridden (*note Block size::).  The
     BLOCKS computed counts each hard link separately; this is arguably
     a deficiency.

     The file type is one of the following characters:

    `-'
          regular file

    `b'
          block special file

    `c'
          character special file

    `C'
          high performance ("contiguous data") file

    `d'
          directory

    `D'
          door (Solaris 2.5 and up)

    `l'
          symbolic link

    `M'
          off-line ("migrated") file (Cray DMF)

    `n'
          network special file (HP-UX)

    `p'
          FIFO (named pipe)

    `P'
          port (Solaris 10 and up)

    `s'
          socket

    `?'
          some other file type

     The file mode bits listed are similar to symbolic mode
     specifications (*note Symbolic Modes::).  But `ls' combines
     multiple bits into the third character of each set of permissions
     as follows:

    `s'
          If the set-user-ID or set-group-ID bit and the corresponding
          executable bit are both set.

    `S'
          If the set-user-ID or set-group-ID bit is set but the
          corresponding executable bit is not set.

    `t'
          If the restricted deletion flag or sticky bit, and the
          other-executable bit, are both set.  The restricted deletion
          flag is another name for the sticky bit.  *Note Mode
          Structure::.

    `T'
          If the restricted deletion flag or sticky bit is set but the
          other-executable bit is not set.

    `x'
          If the executable bit is set and none of the above apply.

    `-'
          Otherwise.

     Following the file mode bits is a single character that specifies
     whether an alternate access method such as an access control list
     applies to the file.  When the character following the file mode
     bits is a space, there is no alternate access method.  When it is
     a printing character, then there is such a method.

     GNU `ls' uses a `.' character to indicate a file with an SELinux
     security context, but no other alternate access method.

     A file with any other combination of alternate access methods is
     marked with a `+' character.

답변4

첫 번째 열은 파일 모드이고, 다음 열은 파일이 가지고 있는 링크 수이며, 세 번째와 네 번째 열은 소유자 이름과 파일이 속한 그룹입니다. 다음 열은 파일의 바이트 수를 나타냅니다(일부 ls구현에서는 -h이 정보를 보다 사용자 친화적인 형식으로 보도록 선택할 수 있음). 마지막 두 열은 타임스탬프와 파일 이름을 나타냅니다. 자세한 내용은 매뉴얼 페이지를 읽어보세요.

관련 정보