Naon / dev / null sareng kumaha cara ngabantosan anjeun?

Upami urang parantos ngagaduhan sababaraha pamanggih ngeunaan tangkal diréktori GNU / Linux, urang sahenteuna kedah kenal sareng rujukan / dev /, anu sacara efektif dimana sadaya file anu aya hubunganana sareng alat-alat hardware.

Upami urang tingali dina diréktori / dev / urang bakal ningali "file" disebat null, tapi upami urang hoyong mukakeunana kanggo ningali eusina, sistem bakal nyaritakeun yén éta moal mungkin kumargi éta sanés kontén biasa. Kuring parantos ngalampirkeun kecap file sabab, sapertos anjeun terang pikeun Linux sadayana (hardware sareng software) digentoskeun salaku file.

Ieu mangrupikeun sumbangan ti Daniel Durante, sahingga janten salah sahiji juara kompetisi mingguan kami: «Bagikeun naon anu anjeun terang ngeunaan Linux«. Ngabagéakeun Daniel!

Alat naon anu pakait sareng / dev / null?

Pikeun kaperluan praktis, bayangkeun tempat sampah, liang jero atanapi luar angkasa pikeun maledogkeun naon waé tanpa kamungkinan dipulut deui (kumaha hésé usahana ti NASA).

Tapi upami kuring parantos gaduh paréntah sapertos rm, naha kuring hoyong anu énggal dihapus?

Kusabab jalan duanana "liang hideung" jalanna lengkep pisan: kumaha anjeun ngalangkungan kaluaran standar tina kasalahan dina paréntah dina skrip cangkang nalika runtime? Ieu dimana / dev / null asup.

Hayu urang tingali ku conto.

Kami parantos nyiptakeun file anu disebut tés anu ngandung senar "Hello World". Upami urang hoyong ngagambarkeun eusi file dina garis paréntah, urang tiasa ngalaksanakeunana ku cara ieu:

pangguna @ laptop: ~ $ ucing tés
Halo Dunya

Upami file henteu aya atanapi disebat salaku tés (kalayan 's' di tungtungna), kami bakal nampi kasalahan ieu dina konsol:

pangguna @ laptop: ~ $ ucing tés
ucing: tés: file atanapi diréktori henteu aya

Naon anu urang tiasa laksanakeun pikeun nyingkahan pesen kasalahan? Nya, kantun alihan kaluaran paréntah, upami aya kasalahan, kana "tong sampah", nyaéta pikeun / dev / null

Kumaha urang netepkeun éta bisi aya kasalahan? Di dieu anjeun ngalebetkeun input standar, kaluaran sareng nilai error pikeun program: STDIN, STDOUT sareng STDERR (anu tiasa diganti masing-masing 0, 1 sareng 2). Ku cara kieu, upami urang nempatkeun ...

pangguna @ laptop: ~ $ ucing tés 2> / dev / null
pangguna @ laptop: ~ $

… Urang bakal ningali yén pesen kasalahan moal dihasilkeun dina konsol.

Anjeun kedah ati-ati sabab sintaksisna penting: antara karakter 2 sareng> teu kedah aya rohangan. Upami teu kitu, éta bakal masihan ieu:

pangguna @ laptop: ~ $ ucing tés 2> / dev / null
ucing: tés: file atanapi diréktori henteu aya
ucing: 2: file atanapi diréktori henteu aya

Kontrasna, rohangan antara> sareng / dev / nol moal mangaruhan négatip hasilna.

Urang ogé tiasa nganggo pangalihan kasalahan, contona, pikeun néwak kasalahan dina file log sapertos kieu:

pangguna @ laptop: ~ $ ucing tés 2> err.log

Kasus anu matak anu sanésna nyaéta kumpulan hasil dina file anu sanés salami teu aya kasalahan, anu bakal kami nempatkeun:

pangguna @ laptop: ~ $ ucing test 1> output_result 2> err.log

Tungtungna, dimungkinkeun pikeun nempatkeun éksprési «> / dev / null 2> & 1» numana kaluaran standar sareng kaluaran kasalahan digabungkeun, alihankeunana supados teu aya inpormasi kaluaran anu dicandak.


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

7 koméntar, tinggalkeun anjeun

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.

  1.   Guido Ignacio Ignacio cenahna

    Ah, tapi salah sahiji utiliti anu paling sering dianggo anu / dev / null leungit, nyaéta ngosongkeun file: $ cat / dev / null> file.log Ku cara kieu, file file.log bakal kosong. Tambihkeun deui!

    1.    Éduardo H cenahna

      Justru éta katerangan anu dipilari.
      Kuring ngadukung gerak kanggo nambihan =)

      Salam!

  2.   Pablo cenahna

    Halo, mimiti sagala tulisan éta saé pisan! anu kadua kuring hoyong nyumbangkeun naon waé anu aya dina tautan ieu dina hal éta padamelan cron di php ti Cpanel sareng ucapan salamet anu katilu pikeun blog!

  3.   Pablo cenahna

    Tulisan anu saé ngeunaan dev / null, naon anu éra sigana kuring salah ngoméntaran di tempat anu salah sateuacanna! Abdi nyungkeun hapunten

  4.   henteu aya namina cenahna

    hatur nuhun sumbangan anu saé

  5.   Jers cenahna

    Salam kuring nuju serangan null. Kuring nganggo andrirc sareng kuring kénging pribadi nami panggilan kuring kalayan kecap Null. 2 detik saatos program ditutup Kuring parantos maca sareng tina naon anu kuring tingali ieu ngan ukur tiasa dilakukeun ku Shell, sanés anu luar. Kuring parantos ngusahakeun teu maliré ka diri sorangan / teu malire -lrpcntikd jeung Teu aya anu ngareuwaskeun kuring paréntah tetep datang. Upami anjeun gaduh cara naon waé pikeun nyobaan blok éta kuring bakal ngahargaan kana éta. Surak

  6.   Sofia martinez cenahna

    Naon kajadian nalika ngajalankeun kalimat éta simbol> henteu disimpen?

    Naha aya anu tiasa ngabimbing kuring?