Các trường trong đầu ra ls -al có nghĩa là gì?


218

Các ls -allệnh cho thấy kết quả như sau;

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

Tất cả các lĩnh vực trong màn hình trước là gì?


L có nghĩa là gì trong những hoán vị này .... lrwxrwxrwx
Lin-man

1
Xin vui lòng đọc câu trả lời thứ hai. Đây là cờ loại tập tin; Tệp thông thường (-), Tệp thư mục (d), Tệp khối (b), Tệp thiết bị ký tự (c), Tệp ống được đặt tên hoặc chỉ một tệp ống (p), Tệp liên kết tượng trưng (l), Tệp ổ cắm. linuxnix.com/file-types-in-linux
Ông White

Câu trả lời:


215

Theo thứ tự đầu ra;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • quyền truy cập tập tin,
  • số lượng liên kết,
  • Tên chủ sở hữu,
  • nhóm chủ sở hữu,
  • Kích thước tập tin,
  • thời gian sửa đổi lần cuối, và
  • tên tập tin / thư mục

Quyền truy cập tệp được hiển thị như sau;

  • ký tự đầu tiên là -hay lhay d, d chỉ ra một thư mục, một dòng đại diện cho một tập tin, l là một liên kết tượng trưng (hoặc liên kết mềm) - loại đặc biệt của tập tin
  • ba bộ ký tự, ba lần, biểu thị quyền cho chủ sở hữu, nhóm và người khác:
    • r = có thể đọc được
    • w = có thể ghi
    • x = thực thi

Trong ví dụ của bạn -rwxrw-r--, điều này có nghĩa là dòng hiển thị là:

  • một tệp thông thường (hiển thị là -)
  • có thể đọc, ghi và thực thi bởi chủ sở hữu (rwx)
  • có thể đọc, ghi được, nhưng không được thực thi theo nhóm (rw-)
  • có thể đọc được nhưng không thể ghi hoặc thực thi được bởi người khác (r--)

14
Có hơn 2 loại tập tin. -không phải dành cho phi danh bạ , đó là cho các file thường xuyên , có nhiều hơn r, wxcho phép. Trên hầu hết các hệ thống, trường đầu tiên cũng được sử dụng để chỉ ra sự hiện diện của các thuộc tính bổ sung như ACL, thuộc tính bảo mật hoặc các thuộc tính mở rộng khác. Cũng lưu ý rằng đối với các liên kết tượng trưng, ​​mục tiêu của liên kết tượng trưng cũng được hiển thị trong đầu ra của ls -l.
Stéphane Chazelas

12
Ký tự đầu tiên có thể có các giá trị khác nhau (ví dụ: bD , and p`). Có một lời giải thích đầy đủ trên Wikipedia .
tro999

13
Số lượng các lĩnh vực được giải thích kém. Đối với các tập tin có nghĩa là số lượng liên kết cứng. Đối với thư mục: số lượng thư mục bên trong thư mục + chính thư mục này + 1.
yanpas 19/03/2016

13
number of linksnghĩa là gì? Cảm ơn.
tommy.carstensen

3
info lscó thêm thông tin
ctrl-alt-delor

94

Đầu ra của lệnh "ls" phụ thuộc vào phiên bản "ls", các tùy chọn được sử dụng, nền tảng được sử dụng, v.v. Nó xuất hiện từ ví dụ của bạn rằng bạn đang sử dụng nó từ một un * x điển hình (như Linux), và có lẽ sử dụng một phiên bản "ls" hiện đại điển hình. Trong trường hợp:

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe
?UUUGGGOOOS   00  UUUUUU GGGGGG ####    ^-- date stamp and file name are obvious ;-)
^ ^  ^  ^ ^    ^      ^      ^    ^
| |  |  | |    |      |      |    \--- File Size
| |  |  | |    |      |      \-------- 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

Tôi không chắc tại sao số lượng liên kết của bạn quá cao cho tệp ví dụ bạn liệt kê. Một số nền tảng có một khái niệm kỳ lạ về những gì tạo thành một "liên kết". Chúng thường bao gồm các liên kết cứng và liên kết tượng trưng, ​​cũng như các mục nhập thư mục (đó là lý do tại sao các thư mục thường có số lượng liên kết cao - cha mẹ của nó có một liên kết, thư mục có một liên kết đến chính nó trong mỗi .mục và mỗi thư mục con của nó có một liên kết trở lại thông qua ..).

Một số phiên bản và / hoặc cờ dòng lệnh sẽ liệt kê số lượng khối được sử dụng thay vì số byte; một hệ thống tệp có kích thước khối 1024 byte sẽ liệt kê tất cả các kích thước lên tới 1024 byte là "1", nghĩa là 1 khối được sử dụng, từ 1025 đến 2048 là "2", sử dụng 2 khối, v.v. Nhưng liệt kê kích thước khối theo mặc định (không sử dụng tùy chọn dòng lệnh) rõ ràng là hiếm trên hầu hết các máy un * x hiện đại.

Cờ truy cập đặc biệt / thay thế thường là một khoảng trống, nhưng trên một số nền tảng, nó có thể được sử dụng để chỉ ra có các chế độ truy cập đặc biệt / thay thế (như ACL và mô tả bảo mật trên WIN32, v.v.) và thay đổi rộng rãi - tham khảo hướng dẫn của bạn , trang người đàn ông, công cụ thông tin, hoặc những gì không.

Các cờ cấp phép (chế độ) (UUUGGGOOO) là ba bộ ba ký tự, trong đó bộ thứ nhất là "Người dùng" (nghĩa là Chủ sở hữu), bộ thứ hai là "Nhóm" và bộ thứ ba là "Khác" (nghĩa là mọi người khác ; bất cứ ai không phải là Chủ sở hữu cũng không phải Tập đoàn). Ba cờ cấp phép trong mỗi bộ thường là rhoặc -có nghĩa là Người dùng / Nhóm / Người khác có thể đọc tệp ( r) hoặc không ( -), theo sau whoặc -cho biết họ có thể ghi vào tệp không (bạn có thể có tệp mà bạn có thể ghi vào, nhưng không thể đọc, kỳ lạ như âm thanh có thể phát ra!) và ký tự thứ ba là cờ 'bắt tất cả' cho các chế độ khác, thường là một cái gì đó giống như xđể thực thi (đối với thư mục, điều đó có nghĩa là bạn có thể cố gắng truy cập nội dung thư mục), hoặc -không choshoặc Scho các chương trình setuid và / hoặc setgid hoặc các ký tự ít phổ biến khác; xem tài liệu "ls" của bạn để biết các ký tự chế độ mà nó sẽ hiển thị.

Cuối cùng, ký tự đầu tiên là loại tệp; thường là một trong: dcho thư mục, lcho một liên kết tượng trưng (liên kết cứng hiển thị bình thường mà không có ký tự đặc biệt của riêng họ) hoặc -cho một tệp bình thường. Có nhiều loại tệp khác, nhưng ít thấy hơn, cho các hệ thống tệp khác nhau. Mười ký tự đầu tiên (loại tệp và quyền) được thảo luận trên Wikipedia . Một lần nữa, tài liệu của bạn sẽ cho bạn biết chính xác loại tập tin mà lệnh của bạn hỗ trợ và hiển thị.

BTW, nếu bạn không thể tìm thấy trang man / thông tin cho chính "ls" ("man ls" / "thông tin ls"), hãy thử tìm trong gói "coreutils" ("thông tin coreutils"). Cũng lưu ý rằng trong số các nền tảng phổ biến hơn, các nền tảng của Microsoft có xu hướng không dịch rất tốt sang đầu ra "ls", do đó bạn có thể thấy hành vi kỳ lạ, cờ hoặc thông tin bất thường khác trong đầu ra, tùy thuộc vào cách phiên bản "ls" của bạn biên dịch, những gì nó được liên kết với, vv

Thêm một cảnh báo: Dấu thời gian của tệp thường là ngày / giờ tệp được sửa đổi lần cuối , không phải là thời gian tệp được tạo. Trong thực tế, trên một hệ thống tập tin un * x-ish, không có bản ghi về thời gian tạo tập tin; trường ctime KHÔNG có nghĩa là "thời gian tạo" như trên các hệ thống tập tin FAT / NTFS, mà đúng hơn, nó có nghĩa là "thời gian thay đổi inode [C]" - thời gian bản thân inode được sửa đổi lần cuối. Dấu thời gian "mtime" (cuối cùng [M] bị loại bỏ) và atime (lần cuối [A] bị buộc / đọc) giống nhau trên cả hai hệ thống - mặc dù độ chính xác (ví dụ: FAT có độ chi tiết là hai giây) và múi giờ có thể thay đổi .


4
Hệ thống nào bao gồm các liên kết tượng trưng trong số lượng liên kết?
celtschk

1
Xin lỗi, tôi không rõ ràng .. Không có hệ thống nào tôi biết bao gồm các liên kết tượng trưng trong số lượng liên kết .. Tôi chỉ có nghĩa là "những gì tạo thành một" liên kết "". Ví dụ: trong Windows ', "shell link" được coi là một liên kết, nhưng hầu hết các lệnh console sẽ coi nó như một tệp bình thường. Điều này bao gồm ls, sẽ không bao gồm nó trong số lượng liên kết. Theo hiểu biết tốt nhất của tôi, trừ khi các nguồn cho 'ls' được sửa đổi theo cách khác, nó chỉ báo cáo những gì HĐH báo cáo cho số lượng liên kết.
CM

1
Bao gồm các tệp sym-links và .lnk sẽ yêu cầu thử toàn bộ thư mục. Chỉ cần liệt kê một tập tin. Nó sẽ là waaaaaaaaaaaaay chậm. Nó chỉ bao gồm liên kết cứng. Đó là số lượng mục nhập thư mục mà tập tin có. (nó được sử dụng bởi trình thu gom rác. Khi số tham chiếu về 0, thì tệp sẽ bị xóa.)
ctrl-alt-delor

1
Thông thường, sự hiểu biết của tôi về hệ điều hành (HĐH) và hệ thống tệp (FS) sẽ đồng ý, nhưng thỉnh thoảng tôi đã thấy một số điều kỳ lạ với một số hệ điều hành và FS nhất định. Mặc dù, nó không phải luôn là một phần của HĐH / FS; Đôi khi, sự kỳ quặc là kết quả của việc cố gắng chuyển một công cụ từ HĐH này sang HĐH khác, sau đó cố gắng điều chỉnh nó cho nền tảng mới - ví dụ, sự khác biệt trong trường CTIME giữa EXT và FAT / NTFS - và cách NTFS thực hiện các loại "liên kết" khác nhau (liên kết shell, điểm lặp lại, v.v.), gây khó khăn cho việc đưa ra định nghĩa chính xác và thống nhất.
CM

1
Lưu ý thêm: kích thước tệp cho một thư mục chỉ là kích thước của siêu dữ liệu của thư mục, không phải tổng kích thước của các tệp trong thư mục.
wvducky

31

Trên các hệ thống GNU, nó được mô tả trong lstrang thông tin một cách rất chi tiết. Tất cả bạn phải làm để tìm thấy nó: chỉ cần mở man lsvà tìm trong liên kết cuối đến tài liệu đầy đủ : info coreutils 'ls invocation'.

Đây là trích dẫn từ nó:

`-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.

Cảm ơn bạn! Tôi không chắc chắn về "tập tin đặc biệt của nhân vật" của c trong cột đầu tiên khi liệt kê/dev/
Bruno Bronosky

3

Cột đầu tiên là chế độ tệp, cột tiếp theo là số liên kết mà tệp có, cột thứ ba và thứ tư là tên của chủ sở hữu và nhóm mà tệp thuộc về. Cột tiếp theo cho biết số byte của tệp (một số lstriển khai có -htùy chọn để xem thông tin này ở dạng thân thiện hơn với người dùng). Hai cột cuối cùng cho biết dấu thời gian và tên của tệp. Bạn sẽ đọc trang người đàn ông để biết thêm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.