„/dev/zero“ a „/dev/null“ jsou dva fiktivní soubory zařízení, které jsou užitečné pro vytváření prázdných souborů. Existuje však výrazný rozdíl v tom, co skutečně dělají. V tomto příspěvku uvidíme rozdíl mezi těmito dvěma a kde je lze použít.
/dev/zero soubor
Používá se k vytvoření souboru bez dat, ale s požadovanou velikostí (soubor se samými nulami).
Vytvořme soubor s /dev/zero:
# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048 2048+0 records in 2048+0 records out 4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s
Vytvoří soubor, který má v sobě spojité nuly. Můžeme tedy říci, že /dev/zero je soubor, který se používá k vytvoření nového souboru s určitou požadovanou velikostí bez jakéhokoli významu pro data.
K vymazání disku můžete také použít soubor /dev/zero ve spojení s příkazem dd. Například:
# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync
Další soubor, který lze v tomto procesu také použít, je/dev/null:
/dev/null
Zatímco odesílání veškerého výstupu je často příjemná věc, další věcí, kterou budete dělat pravidelně, je přesměrování chyb (které u některých příkazů očekáváte) na speciální zařízení:/dev/null.
Nulový druh prozradí funkčnost:je to někde mezi odpadkovým košem a černou dírou. Tento soubor je dokonce užitečný při vytváření souborů s nulovou velikostí.
Pokud například vidíte, že v aktuálním adresáři mám málo souborů a složek:
# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
Pokud přesměruji výstup příkazu „ls“ do souboru „/dev/null“, výstupní data nelze znovu načíst ani po přečtení nulového souboru:
# ls > /dev/null # cat /dev/null #
Jak znovu vytvořit /dev/null
Níže uvedené příkazy byly umístěny na jeden řádek a odděleny středníkem „;“, aby běžely co nejrychleji a měly na běžící systém co nejmenší vliv.
# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ; Execute: yes
Ověřte, že je vše v pořádku a na svém místě:
# ls -al /dev/null
Shrnutí
Když přesměrujeme výstup do /dev/zero, udělá to přesně to samé jako /dev/null:data zmizí. V praxi se však pro tento účel nejčastěji používá /dev/null.
Proč tedy mít toto speciální zařízení? Protože /dev/zero lze také použít ke čtení null bajtů. Ze všech možných 256 bajtů je nulový bajt první:hexadecimální 00. Nulový bajt se často používá k označení ukončení příkazu.