Zer da / dev / null eta nola lagun zaitzake?

GNU / Linux direktorio zuhaitzari buruzko zenbait ideia baditugu, gutxienez / dev / erreferentzia ezagutu beharko genuke, hau da, erlazionatutako fitxategi guztiak dauden tokian. hardware gailuak.

Direktorioan begiratzen badugu / dev / izeneko "fitxategi" bat ikusiko dugu null, baina bere edukia ikusteko ireki nahi badugu, sistemak esango digu ezin dela eduki arrunta ez denez. Fitxategi hitza erantsi dut, Linux-erako guztiok dakizuen moduan (hardwarea eta softwarea) dena fitxategi gisa irudikatzen delako.

Daniel Durante-en ekarpena da eta horrela gure asteroko lehiaketako irabazleetako bat bihurtu da: «Partekatu Linuxi buruz dakizuna«. Zorionak Daniel!

Zein gailuri dagokio / dev / null?

Helburu praktikoetarako, imajinatu zabor ontzi bat, hondo gabeko putzu bat edo kanpoko espazioa, ezer berreskuratzeko aukerarik gabe botatzeko (NASAko mutilak ahalegintzen diren arren).

Baina dagoeneko rm bezalako aginduak baditut, zergatik nahi dut ezabatzen dudan zerbait berria?

Bi "zulo beltzak" funtzionatzeko modua erabat desberdina delako: nola egingo zenuke shell script baten barruan komando bateko errore baten irteera estandarra gailentzen duzunean? Hemen sartzen da / dev / null.

Ikus dezagun adibide batekin.

"Hello World" katea duen test izeneko fitxategia sortu dugu. Fitxategi horren edukia komando lerroan irudikatu nahi badugu, honela egin genezake:

erabiltzailea @ ordenagailu eramangarria: ~ $ cat test
Kaixo Mundua

Fitxategia existituko ez balitz edo test gisa izendatuko balitz (amaieran 's' batekin), honako errore hau lortuko genuke kontsolan:

erabiltzailea @ ordenagailu eramangarria: ~ $ cat probak
cat: tests: Fitxategia edo direktorioa ez dago

Zer egin genezake akats mezua ekiditeko? Beno, besterik gabe, zuzendu komandoaren irteera, akatsik izanez gero, "zaborrontzi" batera, hau da, / dev / null

Nola zehazten dugu akatsen kasuan? Hemen sartzen dituzu programa baterako sarrera, irteera eta errore balio estandarrak: STDIN, STDOUT eta STDERR (hurrenez hurren 0, 1 eta 2 ordez daitezke). Modu honetan, jartzen badugu ...

user @ laptop: ~ $ cat tests 2> / dev / null
erabiltzailea @ ordenagailu eramangarria: ~ $

… Ikusiko dugu errore mezua ez dela kontsolan sortuko.

Kontuz ibili behar duzu sintaxia funtsezkoa delako: 2 eta> karaktereen artean ez da tarterik egon behar. Bestela, honako hau emango luke:

user @ laptop: ~ $ cat tests 2> / dev / null
cat: tests: Fitxategia edo direktorioa ez dago
cat: 2: Fitxategia edo direktorioa ez dago

Aitzitik,> eta / dev / null arteko tarte batek ez du emaitza negatiboki eragingo.

Akatsen birbideratzea ere erabil genezake, adibidez, log fitxategi batean akatsak atzemateko honela:

user @ laptop: ~ $ cat tests 2> err.log

Beste kasu interesgarri bat beste fitxategi bateko emaitzak biltzea litzateke, betiere akatsik gertatzen ez bada, eta horretarako jarriko genuke:

user @ laptop: ~ $ cat test 1> output_result 2> err.log

Azkenean, merezi du irteera estandarra eta errore irteera konbinatzen diren «> / dev / null 2> & 1» esamoldea jartzea, inolaz ere irteerako informazioa lortu ez dadin.


Artikuluaren edukia gure printzipioekin bat dator etika editoriala. Akats baten berri emateko egin klik hemen.

8 iruzkin, utzi zurea

Utzi zure iruzkina

Zure helbide elektronikoa ez da argitaratuko.

*

*

  1. Datuen arduraduna: Miguel Ángel Gatón
  2. Datuen xedea: SPAM kontrolatzea, iruzkinen kudeaketa.
  3. Legitimazioa: Zure baimena
  4. Datuen komunikazioa: datuak ez zaizkie hirugarrenei jakinaraziko legezko betebeharrez izan ezik.
  5. Datuak biltegiratzea: Occentus Networks-ek (EB) ostatatutako datu-basea
  6. Eskubideak: Edonoiz zure informazioa mugatu, berreskuratu eta ezabatu dezakezu.

  1.   Guido Ignatius Ignatius esan zuen

    A, baina / dev / null-ek dituen erabilerarik erabilienetako bat falta da, hau da, fitxategiak hustea: $ cat / dev / null> file.log Modu honetan, file.log fitxategia hutsik egongo da. Gehitu ezazu!

    1.    Edward H. esan zuen

      Bilatzen zuen azalpena zen, hain zuzen ere.
      Mozioa onartzen dut gehitzeko =)

      Agurra!

  2.   Pablo esan zuen

    Kaixo, lehenik eta behin artikulua oso ona da! bigarrena, gaiari buruzko lotura honekin zerbait aportatu nahi nuke cron lana Cpanel-etik php-n eta hirugarren zorionak blogagatik!

  3.   Pablo esan zuen

    Artikulu polita dev / null-i buruz, zer pena aurretik okerreko lekuan oker komentatu dudala uste dut! Sentitzen dut

  4.   Anonymous esan zuen

    eskerrik asko ekarpen ona

  5.   elastikoak esan zuen

    Agurrak eraso nulua izaten ari naiz. Andrirc erabiltzen dut eta ezizenetik pribatu bat lortzen dut Null hitzarekin. 2 segundo geroago programa ixten ari naiz irakurtzen ari naiz eta ikusten dudanaren arabera Shell-ek soilik egin dezake, ez kanpoko norbaitek. Neure burua baztertzen saiatu naiz / ignore -lrpcntikd eta Ezerk ez nau harritzen agindua etortzen jarraitzen du. Blokeatzen saiatzeko modurik baduzu, eskertuko nuke. Animo

  6.   Sofia martinez esan zuen

    Zer gertatzen da esaldia exekutatzerakoan ikurra> jartzen ez bada?

    Norbaitek gidatuko al zidan mesedez?

  7.   Nil esan zuen

    Egun on, Debian netinst instalatu dut ACER Extensa 5620Z - 32 bit-en, USBtik instalatu eta pendrive-a kendu ondoren, disko gogorretik abiarazteko (ez berriro lumatik instalatu) baina abiaraztean sistemak galdetzen dit:
    Debian saio-hasiera: xxxxxxxx (ongi)
    Pasahitza: xxxxxxxx (ongi)
    nil@debian:~$ ???? zer da hau? Zer jarri behar dut hor?

    Komando hau gabe ezin dut sistemaren abiaraztearekin jarraitu.
    Lagunduko didazu? Ez dakit nola jarraitu behar dudan.
    Eskerrik asko. Agur bero bat.