Apa arti bidang dalam output ls -al?

218

The ls -alperintah menunjukkan output berikut;

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

Apa sajakah bidang dalam tampilan sebelumnya?

Tuan Putih
sumber
apa maksud L dalam izin ini .... lrwxrwxrwx
Lin-man
1
Silakan baca jawaban kedua. Ini adalah jenis bendera file; File biasa (-), File direktori (d), File blok (b), File perangkat karakter (c), File pipa bernama atau hanya file pipa (p), File tautan simbolik (l), File soket. linuxnix.com/file-types-in-linux
Mr. White

Jawaban:

215

Dalam urutan output;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • izin file,
  • jumlah tautan,
  • nama pemilik,
  • kelompok pemilik,
  • ukuran file,
  • waktu modifikasi terakhir, dan
  • nama file / direktori

Izin file ditampilkan sebagai berikut;

  • karakter pertama adalah -atau latau d, d menunjukkan direktori, sebuah baris mewakili file, l adalah symlink (atau soft link) - jenis file khusus
  • tiga set karakter, tiga kali, menunjukkan izin untuk pemilik, grup, dan lainnya:
    • r = dapat dibaca
    • w = dapat ditulis
    • x = dapat dieksekusi

Dalam contoh Anda -rwxrw-r--, ini berarti baris yang ditampilkan adalah:

  • file biasa (ditampilkan sebagai -)
  • dapat dibaca, ditulis dan dieksekusi oleh pemilik (rwx)
  • dapat dibaca, dapat ditulis, tetapi tidak dapat dieksekusi oleh grup (rw-)
  • dapat dibaca tetapi tidak dapat ditulisi atau dieksekusi oleh orang lain (r--)
Flyk
sumber
14
Ada lebih dari 2 jenis file. -bukan untuk non-direktori , itu untuk file biasa , ada lebih dari r, wdan xizin. Pada sebagian besar sistem, bidang pertama juga digunakan untuk menunjukkan keberadaan atribut tambahan seperti ACL, atribut keamanan atau atribut diperluas lainnya. Perhatikan juga bahwa untuk symlink, target symlink juga ditampilkan di output ls -l.
Stéphane Chazelas
12
Karakter pertama dapat memiliki nilai yang berbeda (mis. b, , and Dp`). Ada penjelasan lengkap tentang Wikipedia .
ashes999
13
The nomor bidang buruk dijelaskan. Untuk file itu berarti jumlah tautan keras. Untuk direktori: jumlah direktori di dalam direktori + direktori ini sendiri + 1.
yanpas
13
Apa number of linksartinya Terima kasih.
tommy.carstensen
3
info lsmemiliki info lebih lanjut
ctrl-alt-delor
94

Output dari perintah "ls" tergantung pada versi "ls", opsi yang digunakan, platform yang digunakan, dll. Tampaknya dari contoh Anda bahwa Anda menggunakannya dari un * x (seperti Linux), dan mungkin menggunakan versi "ls" modern yang khas. Dalam hal ini:

-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

Saya tidak yakin mengapa jumlah tautan Anda sangat tinggi untuk contoh file yang Anda daftarkan. Beberapa platform memiliki gagasan aneh tentang apa yang merupakan "tautan". Ini biasanya termasuk tautan keras dan tautan simbolis, serta entri direktori (itulah sebabnya direktori sering memiliki jumlah tautan tinggi - induknya memiliki satu tautan, direktori tersebut memiliki tautan ke dirinya sendiri dalam .entri tersebut, dan masing-masing sub-direktori memiliki tautan balik via ..).

Beberapa versi dan / atau flag baris perintah akan mencantumkan jumlah blok yang digunakan alih-alih jumlah byte; sistem file dengan ukuran blok 1024 byte akan mencantumkan semua ukuran hingga 1024 byte sebagai "1", artinya 1 blok digunakan, dari 1025 hingga 2048 sebagai "2", menggunakan 2 blok, dan seterusnya. Tapi daftar ukuran blok secara default (tanpa secara eksplisit menggunakan opsi baris perintah) jarang terjadi pada kebanyakan mesin un * x modern.

Bendera akses khusus / alternatif biasanya merupakan ruang kosong, tetapi pada beberapa platform, ini dapat digunakan untuk mengindikasikan ada mode akses khusus / alternatif (seperti ACL dan deskriptor keamanan pada WIN32, dll.), Dan sangat bervariasi - lihat manual Anda , halaman manual, alat info, atau apa-tidak.

Bendera (mode) izin (UUUGGGOOO) adalah tiga set tiga karakter, di mana set pertama adalah "Pengguna" (yaitu, Pemilik), set kedua adalah "Grup" dan set ketiga adalah "Lainnya" (yaitu, semua orang lain ; siapa pun yang bukan Pemilik atau Grup). Tiga flag izin dalam setiap set biasanya ratau -artinya Pengguna / Grup / Lainnya dapat membaca file ( r) atau tidak ( -), diikuti oleh watau -menunjukkan apakah mereka dapat menulis ke file (Anda dapat memiliki file yang dapat Anda tulis, tetapi tidak dapat membaca, seaneh kedengarannya!), dan karakter ketiga adalah flag 'catch-all' untuk mode lain, biasanya sesuatu seperti xuntuk dieksekusi (untuk direktori, itu berarti Anda dapat mencoba mengakses konten direktori), atau -tidak ada.satau Suntuk program setuid dan / atau setgid, atau karakter lain yang kurang umum; lihat dokumentasi "ls" Anda untuk karakter mode yang akan ditampilkan.

Akhirnya, karakter pertama adalah tipe file; biasanya salah satu dari: duntuk direktori, luntuk tautan simbolik (tautan keras ditampilkan secara normal tanpa karakter khusus mereka sendiri), atau -untuk file normal. Ada banyak tipe file lain, tetapi lebih jarang terlihat, untuk berbagai sistem file. Sepuluh karakter pertama ini (tipe file dan izin) dibahas di Wikipedia . Sekali lagi, dokumentasi Anda akan memberi tahu Anda dengan tepat jenis file yang didukung dan ditampilkan oleh perintah Anda.

BTW, jika Anda tidak dapat menemukan halaman man / info untuk "ls" itu sendiri ("man ls" / "info ls"), coba cari dalam paket "coreutils" ("info coreutils"). Perhatikan juga bahwa di antara platform yang lebih umum, platform Microsoft cenderung tidak menerjemahkan dengan sangat baik untuk output "ls", sehingga Anda dapat melihat perilaku aneh, bendera, atau informasi tidak biasa lainnya dalam output, tergantung pada bagaimana versi "ls" Anda dikompilasi, terkait dengan apa, dll.

Satu lagi peringatan: Cap waktu file biasanya tanggal / waktu file terakhir diubah , bukan waktu file dibuat. Bahkan, pada sistem file un * x-ish, tidak ada catatan waktu pembuatan file; bidang ctime TIDAK berarti "waktu pembuatan" seperti halnya pada sistem file FAT / NTFS, melainkan, itu berarti "inode [C] hange time" - waktu inode itu sendiri terakhir kali dimodifikasi. Cap waktu "mtime" ([M] terakhir) dan atime (terakhir [A] diakses / dibaca) adalah sama pada kedua sistem - meskipun presisi (FAT memiliki rincian dua detik, misalnya) dan zona waktu dapat bervariasi .

CM
sumber
4
Sistem mana yang termasuk tautan simbolik dalam penghitungan tautan?
celtschk
1
Maaf, saya tidak jelas .. Tidak ada sistem yang saya tahu termasuk tautan simbolik dalam penghitungan tautan .. Saya hanya bermaksud dalam "apa yang merupakan 'tautan'". Misalnya, di Windows ', "shell link" dianggap sebagai tautan, tetapi sebagian besar perintah konsol akan memperlakukannya sebagai file normal. Ini termasuk ls, yang tidak akan memasukkannya dalam jumlah tautan. Sejauh pengetahuan saya, kecuali sumber untuk 'ls' diubah, itu hanya melaporkan apa yang dilaporkan OS untuk jumlah tautan.
CM
1
Termasuk sym-links dan .lnk file akan memerlukan langkah dari keseluruhan direktori yang dicoba. Sekedar daftar file. Itu akan menjadi waaaaaaaaaaaaay lambat. Ini hanya termasuk tautan keras. Itu adalah jumlah entri direktori yang dimiliki file. (digunakan oleh pengumpul sampah. Ketika penghitungan referensi menjadi nol, maka file dihapus.)
ctrl-alt-delor
1
Biasanya, pemahaman saya tentang sistem operasi (OS) dan sistem file (FS) akan setuju, tetapi saya telah melihat beberapa keanehan dari waktu ke waktu dengan OS dan FS tertentu. Meskipun, itu tidak selalu menjadi bagian dari OS / FS; Kadang-kadang, keanehan adalah hasil dari mencoba port alat dari satu OS ke yang lain, dan kemudian mencoba untuk menyesuaikannya untuk platform baru - perbedaan dalam bidang CTIME antara EXT dan FAT / NTFS, misalnya - dan bagaimana NTFS mengimplementasikan berbagai jenis "tautan" (tautan shell, titik reparse, dll), sehingga sulit untuk memberikan definisi yang tepat dan seragam.
CM
1
Catatan tambahan: ukuran file untuk direktori hanya ukuran metadata direktori, bukan ukuran total file di bawah direktori.
wisbucky
31

Pada sistem GNU, dijelaskan di lshalaman info dengan sangat rinci. Semua harus Anda lakukan untuk menemukannya: hanya terbuka man lsdan menemukan di akhir link ke dokumentasi lengkap: info coreutils 'ls invocation'.

Berikut adalah kutipan darinya:

`-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.
buru-buru
sumber
Terima kasih! Saya tidak yakin tentang arti "file khusus karakter" dari huruf c pada kolom pertama ketika mendaftar/dev/
Bruno Bronosky
3

Kolom pertama adalah mode file, kolom berikutnya adalah jumlah tautan yang dimiliki file, yang ketiga dan keempat adalah nama pemilik dan grup tempat file tersebut berada. Kolom berikutnya mengatakan jumlah byte file (beberapa lsimplementasi memiliki -hopsi untuk melihat informasi ini dalam bentuk yang lebih ramah pengguna). Dua kolom terakhir menunjukkan stempel waktu dan nama file. Anda telah membaca halaman manual untuk informasi lebih lanjut.

David Martínez
sumber