Mengapa direktori kosong ini 3.5MB?

16

Saya baru saja membaca pertanyaan ini: Apa arti dari ukuran direktori dalam output dari perintah 'ls-l'?

... yang tidak menjawab pertanyaan saya. Pada dasarnya, saya memindahkan file ke NAS. Folder yang telah saya pindahkan benar-benar kosong, tanpa file tersembunyi atau apa pun, namun dumasih melaporkan ukurannya sebesar 3,5MB. Memang, mereka sebelumnya berisi sejumlah besar file, dengan nama file yang panjang.

Apakah ukuran ini hanya karena jumlah dan panjang nama file yang ada di direktori itu? Mengapa ukurannya tidak berkurang sekarang karena foldernya kosong (filesystem ext4)?

shearn89
sumber
1
du cenderung berpikir berbeda dari orang, itu memberikan laporan berdasarkan beberapa pengaturan sistem file. Anda dapat memeriksanya dengan '--apparent-size' di sini: gnu.org/software/coreutils/manual/html_node/du-invocation.html .
Hermann Ingjaldsson
Ketika Anda menyalin direktori kosong yang baru dibuat ke NAS, seperti apa ukurannya? Juga apakah Anda memiliki akses ke NAS di mana Anda dapat menjalankan tune2fs, misalnya?
slm
Sudahkah Anda memperhitungkan foto-foto itu?
mdpc
@slm - mereka keluar pada ukuran normal 4096 (byte?).
shearn89
@mdpc - snapshot?
shearn89

Jawaban:

16

Saat Anda menghapus semua file dari direktori, untuk sebagian besar sistem file, direktori tetap berukuran sama.

Jika direktori kosong,

rmdir ./directory_name; mkdir ./directory

Direktori baru yang dihasilkan akan lebih kecil. Tetapi ketika file ditambahkan itu akan tumbuh lebih besar. Jangan khawatir tentang ukuran file direktori sebanyak jumlah file dalam satu direktori. Sejumlah besar file dalam satu direktori berdampak kinerja pencarian file negatif. Bahkan dengan caching inode yang cukup.

jim mcnamara
sumber
4
Jumlah besar file dalam 1 direktori benar-benar hanya penting untuk sistem file ext. Lainnya seperti xfs, btrfs, reiser, dll tidak memiliki masalah yang sama.
Patrick
2
Itu betul. Namun ufs memang memiliki masalah seperti halnya orang lain. Meskipun pertanyaan ini benar-benar ext4, masalahnya ada di mana-mana jadi saya sebutkan.
jim mcnamara
Selain masalah kinerja, menempatkan terlalu banyak file dalam direktori dapat menyebabkan masalah lain - melakukan suatu rm *dapat menyebabkan masalah jika Anda memiliki lebih dari 1024 file.
Sean McSomething
@SeanMcSomething Apa masalah yang Anda maksud?
Hatshepsut
1
@SeanMcSesuatu saya tidak tahu, dari mana Anda mendapatkan omong kosong ini. Baris perintah dari suatu proses bisa setengah megabyte atau lebih. Ini tidak ada hubungannya dengan hitungan file, ukuran total dari baris perintah memiliki batas, yang jauh lebih tinggi seperti yang Anda katakan.
peterh