Tolong, jelaskan apa yang Anda maksud dengan ukuran "fisik".
Jörg W Mittag
Jawaban:
28
ls -lakan memberi Anda ukuran yang jelas dari file tersebut, yang merupakan jumlah byte yang akan dibaca oleh program jika membaca file dari awal hingga selesai. duakan memberi Anda ukuran file "pada disk".
Secara default, dumemberi Anda ukuran file dalam jumlah blok disk, tetapi Anda dapat menggunakan -huntuk mendapatkan unit yang dapat dibaca manusia. Lihat juga manual untuk dudi sistem Anda.
Perhatikan bahwa dengan GNU coreutil du(yang mungkin apa yang Anda miliki di Linux), -buntuk mendapatkan byte berarti --apparent-sizeopsi. Ini bukan apa yang ingin Anda gunakan untuk mendapatkan jumlah byte yang sebenarnya digunakan pada disk. Sebaliknya, gunakan --block-size=1atau -B 1.
Dengan GNU ls, Anda juga dapat melakukannya ls -s --block-size=1pada file. Ini akan memberikan nomor yang sama du -B 1dengan file.
Contoh:
$ ls -l file
-rw-r--r-- 1 myself wheel 536870912 Apr 8 11:44 file
$ ls -lh file
-rw-r--r-- 1 myself wheel 512M Apr 8 11:44 file
$ du -h file
24K file
$ du -B 1 file
24576 file
$ ls -s --block-size=1 file
24576 file
Ini berarti bahwa ini adalah file 512 MB yang membutuhkan waktu sekitar 24 KB pada disk. Ini adalah file yang jarang (kebanyakan nol yang sebenarnya tidak ditulis ke disk tetapi direpresentasikan sebagai "lubang" logis dalam file). File jarang adalah umum ketika bekerja dengan file besar yang dialokasikan sebelumnya, misalnya gambar disk untuk mesin virtual atau bertukar file dll. Membuat file jarang cepat, sementara mengisinya dengan nol lambat (dan tidak perlu).
Lihat juga manual untuk fallocatedi sistem Linux Anda.
dalam hal apa perbedaan ini penting? dapatkah Anda membuat contoh praktis? Terima kasih sebelumnya.
D'Arcy Nader
1
@ D'ArcyNader Lihat jawaban yang diperbarui.
Kusalananda
Perbaiki saya jika saya salah mengerti sesuatu, tetapi tampaknya kalimat pertama adalah sebaliknya: stackoverflow.com/a/31437673/3701431du akan menunjukkan seberapa banyak data dapat dibaca, sementara lsmenunjukkan sejauh mana sektor disk dialokasikan.
Sergiy Kolodyazhnyy
2
@SergiyKolodyazhnyy (maaf untuk membalas terlambat) Tidak, dumenunjukkan jumlah disk yang sebenarnya digunakan oleh file, sedangkan ukuran yang terlihat (ukuran logis) yang ditunjukkan oleh lsadalah berapa banyak byte yang dapat dibaca oleh suatu program. Jika file jarang, beberapa byte baca akan menjadi nol, tetapi mereka masih akan dikirim ke program yang membacanya (tidak hanya dari disk).
Kusalananda
Ini jawaban yang sangat bagus.
Lizardx
3
Saya mendapatkan ukuran file dalam byte seperti ini:
Jawaban:
ls -l
akan memberi Anda ukuran yang jelas dari file tersebut, yang merupakan jumlah byte yang akan dibaca oleh program jika membaca file dari awal hingga selesai.du
akan memberi Anda ukuran file "pada disk".Secara default,
du
memberi Anda ukuran file dalam jumlah blok disk, tetapi Anda dapat menggunakan-h
untuk mendapatkan unit yang dapat dibaca manusia. Lihat juga manual untukdu
di sistem Anda.Perhatikan bahwa dengan GNU coreutil
du
(yang mungkin apa yang Anda miliki di Linux),-b
untuk mendapatkan byte berarti--apparent-size
opsi. Ini bukan apa yang ingin Anda gunakan untuk mendapatkan jumlah byte yang sebenarnya digunakan pada disk. Sebaliknya, gunakan--block-size=1
atau-B 1
.Dengan GNU
ls
, Anda juga dapat melakukannyals -s --block-size=1
pada file. Ini akan memberikan nomor yang samadu -B 1
dengan file.Contoh:
Ini berarti bahwa ini adalah file 512 MB yang membutuhkan waktu sekitar 24 KB pada disk. Ini adalah file yang jarang (kebanyakan nol yang sebenarnya tidak ditulis ke disk tetapi direpresentasikan sebagai "lubang" logis dalam file). File jarang adalah umum ketika bekerja dengan file besar yang dialokasikan sebelumnya, misalnya gambar disk untuk mesin virtual atau bertukar file dll. Membuat file jarang cepat, sementara mengisinya dengan nol lambat (dan tidak perlu).
Lihat juga manual untuk
fallocate
di sistem Linux Anda.sumber
du
akan menunjukkan seberapa banyak data dapat dibaca, sementarals
menunjukkan sejauh mana sektor disk dialokasikan.du
menunjukkan jumlah disk yang sebenarnya digunakan oleh file, sedangkan ukuran yang terlihat (ukuran logis) yang ditunjukkan olehls
adalah berapa banyak byte yang dapat dibaca oleh suatu program. Jika file jarang, beberapa byte baca akan menjadi nol, tetapi mereka masih akan dikirim ke program yang membacanya (tidak hanya dari disk).Saya mendapatkan ukuran file dalam byte seperti ini:
sumber