Bir dosya sistemindeki dosya sayısını nasıl bulabilirim?


26

Dosya sistemimde kaç tane dosya bulunduğunu bilmek istiyorum. Böyle bir şey yapabileceğimi biliyorum:

find / -type f | wc -l

Bu oldukça verimsiz görünüyor. Gerçekten yapmak istediğim şey, 'dosya' sayılan toplam benzersiz inode sayısını bulmak.

Daha iyi bir yolu var mı?

Not:

Bunu yapmak istiyorum çünkü bir dosya senkronizasyon programı geliştiriyorum ve bazı istatistiksel analizler yapmak istiyorum (ortalama kullanıcının toplam kaç dosyaya sahip olduğu gibi - sistemde kaç dosya olduğu gibi). Bununla birlikte, bu dosyalar hakkında hiçbir şey bilmeme gerek yok, sadece onlar var (yollar önemli değil). Her bir bağlı dosya sistemi için bu bilgiyi özellikle bilmek istiyorum (ve ilişkili bağlantı noktası).

Yanıtlar:


34

--İnodes seçeneği dfsize kaç tane inode'un kullanım için ayrıldığını söyleyecektir. Örneğin:

$ df --inodes / /home
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3981312  641704 3339608   17% /
/dev/sda8            30588928  332207 30256721    2% /home
$ sudo find / -xdev -print | wc -l
642070
$ sudo find /home -print | wc -l
332158
$ sudo find /home -type f -print | wc -l
284204

Döndürülen giriş sayısının kök (/) dosya sisteminden finddaha büyük IUsed, ancak / home için daha az olduğuna dikkat edin. Ancak her ikisi de% 0,0005 içinde. Tutarsızlıkların nedeni, sert bağlantılar ve benzeri durumlar nedeniyledir.

Dizinlerin, sembolik bağlantıların, UNIX alan soketlerinin ve adlandırılmış yöneltmelerin, dosya sistemiyle ilgili olarak 'dosyalar' olduğunu unutmayın. Bu nedenle find -type fbayrak kullanmak , istatistiksel bir bakış açısıyla, çılgınca yanlış.


Sanırım aradığım şey bu. Her bir dosya türünden kaç tanesinin bulunduğunu öğrenmenin bir yolu var mı? Bu benim uygulamam tarafından doğrudan gerekli değildir, ancak yararlı bilgi olabilir.
beatgammit

1
Dosya sistemindeki her bir dosyanın düğümlerini incelemeden değil, bu da bulmayı yapmakla aynı olacaktır.
Arcege 18:11

Df çoğu dosya sistemini (ext2-4, ntfs, fat, reiserfs, vb.) Anlıyor mu?
beatgammit

Monte edilebilecek herhangi bir dosya sistemi tipini anlardı. Bazı dosya sistemi türlerinde düğüm yoktur (örneğin, yağ); dfBu dosya sistemlerinde toplam inode sayısını 0 olarak gösterecektim. Diğer tipler, temel dosya sisteminin inode istatistiklerini göstermelidir.
Arcege

/dev/nullSizi, dosyaların /proc"sanal" olduğunu belirten satırlar alır gibi görmeye yönlendirmek ister misiniz ?
n0pe

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.