ฟิลด์ในเอาต์พุต ls -al หมายถึงอะไร


218

ls -alคำสั่งแสดงผลลัพธ์ดังต่อไปนี้

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

ฟิลด์ทั้งหมดในหน้าจอก่อนหน้าคืออะไร


L หมายถึงอะไรในการอนุญาตเหล่านี้ .... lrwxrwxrwx
Lin-man

1
โปรดอ่านคำตอบที่สอง มันเป็นธงประเภทไฟล์; ไฟล์ปกติ (-), ไฟล์ Directory (d), ไฟล์บล็อก (b), ไฟล์อุปกรณ์ตัวละคร (c), ไฟล์เนมที่มีชื่อหรือเพียงไฟล์ไพพ์ (p), ไฟล์ลิงก์สัญลักษณ์ (l), ไฟล์ซ็อกเก็ต linuxnix.com/file-types-in-linux
Mr. White

คำตอบ:


215

ในลำดับของการส่งออก;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • การอนุญาตของไฟล์
  • จำนวนลิงก์
  • ชื่อเจ้าของ,
  • กลุ่มเจ้าของ
  • ขนาดไฟล์
  • เวลาของการแก้ไขครั้งสุดท้ายและ
  • ชื่อไฟล์ / ไดเรกทอรี

การอนุญาตการใช้ไฟล์จะแสดงดังต่อไปนี้;

  • อักขระตัวแรกคือ-หรือlหรือd, d หมายถึงไดเรกทอรี, บรรทัดแทนไฟล์, l คือ symlink (หรือซอฟต์ลิงก์) - ไฟล์ชนิดพิเศษ
  • ชุดอักขระสามชุดสามครั้งแสดงการอนุญาตสำหรับเจ้าของกลุ่มและอื่น ๆ :
    • r = อ่านได้
    • w = เขียนได้
    • x = ปฏิบัติการได้

ในตัวอย่างของคุณ-rwxrw-r--นี่หมายถึงบรรทัดที่แสดงคือ:

  • ไฟล์ปกติ (แสดงเป็น -)
  • สามารถอ่านได้เขียนได้และเรียกใช้งานได้โดยเจ้าของ (rwx)
  • อ่านได้เขียนได้ แต่ไม่สามารถเรียกใช้งานได้ตามกลุ่ม (rw-)
  • สามารถอ่านได้ แต่ไม่สามารถเขียนได้หรือปฏิบัติการได้โดยผู้อื่น (r--)

14
มีไฟล์มากกว่า 2 ประเภท -ไม่ได้สำหรับไดเรกทอรีที่ไม่ใช่ก็สำหรับไฟล์ปกติมีมากขึ้นกว่าr, wและxสิทธิ์ ในระบบส่วนใหญ่ฟิลด์แรกยังใช้เพื่อระบุว่ามีแอตทริบิวต์พิเศษเช่น ACLs คุณลักษณะด้านความปลอดภัยหรือแอตทริบิวต์เพิ่มเติมอื่น ๆ นอกจากนี้ยังทราบว่าสำหรับ symlinks กำหนดเป้าหมายของ symlink ls -lจะปรากฏยังอยู่ในการส่งออกของ
Stéphane Chazelas

12
อักขระตัวแรกสามารถมีค่าต่างกัน (เช่น. b, D , and p`) มีคำอธิบายทั้งหมดเป็นวิกิพีเดีย
ashes999

13
ตัวเลขของเขตข้อมูลจะมีการอธิบายได้ไม่ดี สำหรับไฟล์หมายถึงจำนวนฮาร์ดลิงก์ สำหรับไดเรกทอรี: จำนวนไดเรกทอรีที่อยู่ในไดเรกทอรี + ไดเรกทอรีนี้เอง + 1
yanpas

13
อะไรnumber of linksหมายความว่าอย่างไร ขอบคุณ
tommy.carstensen

3
info lsมีข้อมูลเพิ่มเติม
ctrl-alt-delor

94

ผลลัพธ์ของคำสั่ง "ls" ขึ้นอยู่กับรุ่นของ "ls" ตัวเลือกที่ใช้แพลตฟอร์มที่ใช้ ฯลฯ ปรากฏขึ้นจากตัวอย่างของคุณที่คุณใช้จาก un * x (เช่น Linux) และอาจใช้เวอร์ชั่น "ls" แบบทั่วไป ในกรณีนี้:

-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

ฉันไม่แน่ใจว่าทำไมจำนวนลิงค์ของคุณถึงสูงมากสำหรับไฟล์ตัวอย่างที่คุณระบุ บางแพลตฟอร์มมีความคิดแปลก ๆ เกี่ยวกับสิ่งที่ถือเป็น "ลิงก์" เหล่านี้มักจะรวมถึงการเชื่อมโยงอย่างหนักและการเชื่อมโยงสัญลักษณ์เช่นเดียวกับรายการไดเรกทอรี (ซึ่งเป็นเหตุผลที่ไดเรกทอรีมักจะมีจำนวนลิงค์สูง - ผู้ปกครองของมันมีลิงค์เดียวไดเรกทอรีมีลิงค์ไปยังตัวเองใน.รายการและแต่ละไดเรกทอรีย่อยมี ลิงค์กลับมาผ่าน..)

บางรุ่นและ / หรือการตั้งค่าบรรทัดคำสั่งจะแสดงรายการจำนวนบล็อกที่ใช้แทนจำนวนไบต์ ระบบไฟล์ที่มีขนาดบล็อก 1024 ไบต์จะแสดงรายการทุกขนาดสูงสุด 1024 ไบต์เป็น "1" หมายถึงใช้ 1 บล็อกจาก 1025 ถึง 2048 เป็น "2" โดยใช้ 2 บล็อกและอื่น ๆ แต่การแสดงขนาดบล็อกตามค่าเริ่มต้น (โดยไม่ใช้ตัวเลือกบรรทัดคำสั่งอย่างชัดเจน) นั้นหาได้ยากในเครื่อง un * x ที่ทันสมัยที่สุด

การตั้งค่าสถานะการเข้าถึงแบบพิเศษ / สำรองมักจะเป็นพื้นที่ว่างเปล่า แต่ในบางแพลตฟอร์มอาจใช้เพื่อระบุว่ามีโหมดการเข้าถึงแบบพิเศษ / ทางเลือกอื่น (เช่น ACL และตัวบอกความปลอดภัยใน WIN32 เป็นต้น) และแตกต่างกันอย่างมาก , หน้าคน, เครื่องมือข้อมูลหรืออะไรก็ตาม

แฟล็กการอนุญาต (โหมด) (UUUGGGOOO) เป็นชุดสามชุดสามชุดซึ่งชุดแรกคือ "ผู้ใช้" (เช่นเจ้าของ) ชุดที่สองคือ "กลุ่ม" และชุดที่สามคือ "อื่น ๆ " (เช่นทุกคนอื่น ๆ ทุกคนที่ไม่ใช่เจ้าของหรือกลุ่ม) โดยทั่วไปแล้วแฟล็กการอนุญาตสามรายการในแต่ละชุดจะเป็นแบบปกติrหรือ-หมายถึงผู้ใช้ / กลุ่ม / อื่น ๆ สามารถอ่านไฟล์ ( r) หรือไม่ ( -) ตามด้วยwหรือ-ระบุว่าพวกเขาสามารถเขียนไฟล์ได้หรือไม่ (คุณสามารถมีไฟล์ที่คุณสามารถเขียนได้ แต่ไม่สามารถอ่านได้แปลกอย่างที่อาจฟังดู!) และตัวอักษรตัวที่สามคือแฟล็ก 'catch-all' สำหรับโหมดอื่นโดยทั่วไปจะคล้ายxกับเอ็กซีคิวต์ (สำหรับไดเรกทอรีหมายความว่าคุณสามารถพยายามเข้าถึงเนื้อหาไดเรคทอรี) หรือ-ไม่มีเลยsหรือSสำหรับ setuid และ / หรือโปรแกรม setgid หรือตัวละครอื่น ๆ ดูเอกสาร "ls" ของคุณสำหรับตัวอักษรโหมดที่จะแสดง

ในที่สุดตัวอักษรตัวแรกคือประเภทไฟล์ โดยทั่วไปแล้วหนึ่งใน: dสำหรับไดเรกทอรีlสำหรับลิงก์สัญลักษณ์ (ลิงก์ถาวรแสดงตามปกติโดยไม่มีอักขระพิเศษของตนเอง) หรือ-สำหรับไฟล์ปกติ มีประเภทไฟล์อื่น ๆ อีกมากมาย แต่ที่เห็นน้อยกว่าปกติสำหรับระบบไฟล์ต่างๆ เหล่านี้สิบตัวอักษรแรก (ประเภทไฟล์และสิทธิ์) ที่จะกล่าวถึงในวิกิพีเดีย อีกครั้งเอกสารของคุณจะบอกคุณว่าชนิดของไฟล์ที่คำสั่งสนับสนุนและแสดง

BTW หากคุณไม่พบหน้าคน / ข้อมูลสำหรับ "ls" ตัวเอง ("man ls" / "info ls") ลองค้นหาในแพ็คเกจ "coreutils" ("info coreutils") นอกจากนี้โปรดทราบว่าในบรรดาแพลตฟอร์มทั่วไปแพลตฟอร์มของ Microsoft มักจะไม่ค่อยแปลผลลัพธ์เป็น "ls" ได้ดีดังนั้นคุณอาจเห็นพฤติกรรมแปลก ๆ สถานะหรือข้อมูลผิดปกติอื่น ๆ ในผลลัพธ์ขึ้นอยู่กับว่า "ls" รุ่นของคุณเป็นอย่างไร รวบรวมสิ่งที่เชื่อมโยงกับ ฯลฯ

คำเตือนอีกหนึ่งประการ: การประทับเวลาไฟล์มักจะเป็นวันที่ / เวลาที่มีการแก้ไขไฟล์ครั้งล่าสุดไม่ใช่เวลาที่สร้างไฟล์ ที่จริงแล้วบนระบบไฟล์ un * x-ish จะไม่มีการบันทึกเวลาในการสร้างไฟล์ ฟิลด์ ctime ไม่ได้หมายถึง "เวลาการสร้าง" ตามที่มันทำบนระบบไฟล์ FAT / NTFS แต่มันหมายถึง "inode [C] hange time" - เวลาที่ inode ถูกแก้ไขครั้งล่าสุด เวลา "mtime" (สุดท้าย [M]) และ atime (ล่าสุด [A] ccesed / อ่าน) การประทับเวลาเหมือนกันในทั้งสองระบบ - แม้ว่าความแม่นยำ (FAT มีความละเอียดสองวินาทีเป็นต้น) และเขตเวลาอาจแตกต่างกันไป .


4
ระบบใดมีลิงค์สัญลักษณ์ในจำนวนลิงค์?
celtschk

1
ขออภัยฉันไม่ชัดเจน .. ไม่มีระบบที่ฉันรู้ว่ามีลิงก์สัญลักษณ์ในการนับลิงก์.. ฉันหมายถึงเฉพาะใน "สิ่งที่ถือว่าเป็น" ลิงค์ " ตัวอย่างเช่นใน Windows '"shell link" ถือเป็นลิงค์ แต่คำสั่งคอนโซลส่วนใหญ่จะถือว่าเป็นไฟล์ปกติ ซึ่งรวมถึง ls ซึ่งจะไม่รวมอยู่ในจำนวนลิงค์ เพื่อความรู้ที่ดีที่สุดของฉันเว้นแต่ว่าแหล่งที่มาของ 'ls' นั้นได้รับการแก้ไขเป็นอย่างอื่นรายงานเฉพาะสิ่งที่รายงานระบบปฏิบัติการสำหรับการนับลิงก์
CM

1
การรวมไฟล์ sym-links และ. lnk จะต้องใช้เวลาในการลองทั้งไดเรกทอรี เพียงเพื่อแสดงรายการไฟล์ มันจะช้า waaaaaaaaaaaaay มันมีเพียงการเชื่อมโยงอย่างหนัก นั่นคือจำนวนรายการไดเรกทอรีที่ไฟล์มี (มันถูกใช้โดยตัวเก็บรวบรวมขยะเมื่อจำนวนการอ้างอิงถึงศูนย์แล้วไฟล์จะถูกลบ)
ctrl-alt-delor

1
โดยปกติความเข้าใจของฉันเกี่ยวกับระบบปฏิบัติการ (OS) และระบบไฟล์ (FS) จะเห็นด้วย แต่ฉันเห็นบางสิ่งที่แปลกประหลาดเป็นครั้งคราวกับระบบปฏิบัติการและ FS บางอย่าง แม้ว่ามันจะไม่ได้เป็นส่วนหนึ่งของ OS / FS เสมอไป บางครั้งความแปลกประหลาดนั้นเป็นผลมาจากการพยายามที่จะย้ายเครื่องมือจากระบบปฏิบัติการหนึ่งไปยังอีกระบบหนึ่งและจากนั้นพยายามปรับเปลี่ยนสำหรับแพลตฟอร์มใหม่ - ความแตกต่างในฟิลด์ CTIME ระหว่าง EXT และ FAT / NTFS เป็นต้น - และวิธีการ NTFS ใช้ "ลิงก์" ประเภทต่าง ๆ (ลิงก์เชลล์จุดแยกวิเคราะห์ใหม่ ฯลฯ ) ทำให้ยากที่จะให้คำจำกัดความที่แน่นอนและเหมือนกัน
CM

1
หมายเหตุเพิ่มเติม: ขนาดไฟล์สำหรับไดเรกทอรีเป็นเพียงขนาดของข้อมูลเมตาของไดเรกทอรีไม่ใช่ขนาดรวมของไฟล์ภายใต้ไดเรกทอรี
wisbucky

31

ในระบบ GNU มีการอธิบายไว้ในlsหน้าข้อมูลอย่างละเอียดมาก ทั้งหมดที่คุณต้องทำเพื่อหามัน: เพียงแค่เปิดและหาในการเชื่อมโยงท้ายกับเอกสารฉบับเต็ม:man lsinfo 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.

ขอขอบคุณ! ฉันไม่แน่ใจเกี่ยวกับความหมายของ "อักขระพิเศษไฟล์" ของคอลัมน์ในคอลัมน์แรกเมื่อรายการ/dev/
Bruno Bronosky

3

คอลัมน์แรกคือโหมดไฟล์คอลัมน์ถัดไปคือจำนวนลิงก์ที่ไฟล์มีสามและสี่คือชื่อของเจ้าของและกลุ่มที่ไฟล์นั้นเป็นเจ้าของ คอลัมน์ถัดไประบุจำนวนไบต์ของไฟล์ ( lsการใช้งานบางอย่างมี-hตัวเลือกเพื่อดูข้อมูลนี้ในรูปแบบที่ใช้งานง่ายขึ้น) สองคอลัมน์สุดท้ายระบุเวลาประทับและชื่อของไฟล์ คุณต้องการอ่าน man page สำหรับข้อมูลเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.