/dev/null

De la Viquipèdia, l'enciclopèdia lliure

En sistemes operatius tipus Unix, /dev/null o perifèric nul (null device) és un fitxer especial que descarta tota la informació que s'escriu o redirecciona en ell. Al seu torn, no proporciona cap dada a qualsevol procés que intenti llegir d'ell, tornant simplement un EOF o fi de fitxer.

Generalment s'usa en shell scripts per redirigir la sortida d'un flux de dades (stream) d'un procés o com un fitxer buit que actua com entrada d'un flux de dades d'un procés.

La forma més comuna utilitzada és mitjançant la redirecció, ja que /dev/null, com ja s'ha dit, és un fitxer especial i no un directori; per tant, no es poden moure (mv) ni copiar (cp) fitxers en el seu interior.

Exemples d'ús[modifica]

Primer exemple[modifica]

uname -r > /dev/null/

Anàlisi de l'ordre:

  • 'uname': mostra informació del sistema.
    • -r: Argument per l'ordre anterior, la qual li diu a l'ordre "uname" que mostri la versió completa del kernel del sistema.
  • >: Aquest és una ordre de redirecció. Redirecciona el resultat de l'ordre "uname -r" a un arxiu; en aquest cas, a l'arxiu:
    • /dev/null : Aquest arxiu rep la informació resultant, tanmateix, no l'emmagatzema com succeiria amb una arxiu normal. A continuació, la consola no reporta cap informació ni error.

Segon exemple[modifica]

En aquest exemple l'usuari desitja trobar el nom d'un fitxer dins de paquet RPM:

for i in *.rpm; do (rpm -qlp $i | grep $1 >/dev/null && echo $i); done

Anàlisi de l'ordre:

  • for i in *.rpm : efectua un bucle sobre tots els arxius del tipus .rpm.
  • do (rpm -qlp $i | grep $1 >/dev/null && echo $i) ' ' : execució de la comanda.
    • rpm -qlp $i | grep $1 : realitza una recerca dins de cada arxiu .rpm trobat i mostra el resultat (el nom del fitxer buscat).
    • >/dev/null: PERÒ, com no desitja el resultat (en realitat és el nom del fitxer buscat que ja el coneixem).
    • &&echo $i : el que volem és el nom de l'arxiu (paquet rpm) que el conté, ho mostrem utilitzant un echo.
  • done: finalitza el bucle.