GNU/Linux >> Znalost Linux >  >> Linux

Co jsou soubory /dev/zero a /dev/null v Linuxu

„/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.


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?

  1. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  2. jádro:deaktivace /dev/kmem a /dev/mem

  3. Je špatné propojit /dev/random s /dev/urandom v Linuxu?

  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Vytvořte virtuální blokové zařízení, které zapisuje do /dev/null

  3. Rozdíly mezi /dev/sda a /dev/sda1