GNU/Linux >> Znalost Linux >  >> Linux

jaký je nejspolehlivější příkaz pro zjištění skutečné velikosti souboru linux

Není zde žádný problém s nepřesností nebo spolehlivostí, pouze porovnáváte dvě různá čísla:logickou velikost vs. fyzickou velikost.

Zde je ilustrace Wikipedie pro řídké soubory:

ls zobrazuje šedé + zelené oblasti, logickou délku souboru. du (bez --apparent-size ) zobrazuje pouze zelené plochy, protože právě ty zabírají místo.

Pomocí dd count=0 bs=1M seek=100 of=myfile můžete vytvořit řídký soubor .

ls ukazuje 100 MiB, protože tolik je soubor dlouhý:

$ ls -lh myfile
-rw-r----- 1 me me 100M Jul 15 10:57 myfile

du ukazuje 0, protože je přiděleno tolik dat:

$ du myfile
0 myfile

ls -l --block-size=M

vám poskytne dlouhý výpis formátu (potřebný ke skutečnému zobrazení velikosti souboru) a zaokrouhlí velikosti souborů až na nejbližší MiB .

Pokud chcete MB (10^6 bajtů) místo MiB (2^20 bajtů) jednotek, použijte --block-size=MB místo toho.

Pokud nechcete M příponu připojenou k velikosti souboru, můžete použít něco jako --block-size=1M . Děkuji Stéphane Chazelas za to, že to navrhl.

Toto je popsáno v manuálové stránce ls; man ls a vyhledejte SIZE . Umožňuje použití jiných jednotek než MB/MiB také a podle vzhledu (to jsem nezkoušel) také libovolné velikosti bloků (takže můžete vidět velikost souboru jako počet 412bajtových bloků, pokud chcete).

Všimněte si, že --block-size parametr je rozšíření GNU nad ls otevřené skupiny , takže to nemusí fungovat, pokud nemáte uživatelskou zemi GNU (což má většina instalací Linuxu). ls z GNU coreutils 8.5 podporuje --block-size jak je popsáno výše.


Existuje několik pojmů o velikosti souboru, jak je vysvětleno v odpovědi druhého muže a na obrázku wikipage o řídkých souborech.

Možná však budete chtít použít oba příkazy ls(1) a stat(1).

Pokud kódujete v C, zvažte použití systémových volání stat(2) &lseek(2).

Viz také odkazy v této odpovědi.


Linux
  1. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  2. Co je ekvivalentní příkazu Linux File pro Windows?

  3. Jaký je unixový příkaz ke zjištění, jaký spustitelný soubor odpovídá danému příkazu?

  1. Co by mohlo způsobit, že příkaz file v Linuxu nahlásí textový soubor jako binární data?

  2. K čemu je Linux test – příkazový test?

  3. Jaký je příkaz pro kopírování, čtení a odstraňování souboru v linuxu

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Jak používat příkaz Tar v Linuxu

  3. Základní příklady příkazu File v Linuxu