/ Dev / null гэж юу вэ, энэ нь танд хэрхэн туслах вэ?

Хэрэв бид GNU / Linux лавлах модны талаар зарим ойлголттой болсон бол бид дор хаяж / dev / лавлах материалыг мэддэг байх ёстой бөгөөд энэ нь холбогдох бүх файлууд үр дүнтэй байдаг. тоног төхөөрөмжийн төхөөрөмжүүд.

Хэрэв бид лавлах сангаас харах юм бол / dev / бид "файл" -ыг харах болно тэг, гэхдээ бид түүний агуулгыг харахын тулд нээхийг хүсвэл энэ нь энгийн агуулга биш тул боломжгүй юм гэдгийг систем бидэнд хэлнэ. Линуксийн хувьд бүх зүйлийг (техник хангамж, програм хангамж) файл болгон харуулдаг тул би файл гэдэг үгийг хавсаргав.

Энэ бол Даниел Дурантегийн оруулсан хувь нэмэр бөгөөд ингэснээр манай долоо хоног тутмын тэмцээний ялагчдын нэг болж байна: «Линуксийн талаар мэддэг зүйлээ хуваалцаарай«. Даниелдаа баяр хүргэе!

/ Dev / null ямар төхөөрөмжтэй тохирч байна вэ?

Практик зорилгоор хогийн сав, ёроолгүй нүх эсвэл огторгуйд юу ч хамаагүй хаях боломжтой зүйлийг төсөөлөөд үз дээ (НАСА-гийн залуус хичнээн хичээгээд ч хамаагүй).

Гэхдээ хэрэв надад rm гэх мэт тушаалууд байгаа бол би яагаад шинэ зүйл устгахыг хүсч байна вэ?

Учир нь "хар нүх" -ийн хоёулаа ажиллах арга нь тэс өөр байдаг: ажиллуулах явцад бүрхүүлийн скрипт дэх тушаалын алдааны стандарт гаралтыг хэрхэн яаж дарах вэ? Энэ нь / dev / null орж ирдэг.

Үүнийг жишээн дээр харцгаая.

Бид "Hello World" мөрийг агуулсан тестүүд нэртэй файл үүсгэсэн. Хэрэв бид тухайн файлын агуулгыг тушаалын мөрөнд төлөөлөхийг хүсвэл дараахь байдлаар хийж болно:

user @ laptop: ~ $ муурны тест
Сайн байна уу ертөнц

Хэрэв файл байхгүй байсан эсвэл тест гэж нэрлэсэн бол (төгсгөлд нь 's'), бид консол дээр дараах алдаа гарах болно.

user @ laptop: ~ $ муурны тест
cat: тестүүд: Файл эсвэл директор байхгүй байна

Алдааны мэдэгдлээс зайлсхийхийн тулд бид юу хийж болох вэ? За, тушаалын үр дүнг алдаатай тохиолдолд "хогийн сав" руу чиглүүлээрэй, өөрөөр хэлбэл / dev / null

Алдаа гарсан тохиолдолд бид үүнийг хэрхэн яаж тодорхойлох вэ? Энд та програмын стандарт оролт, гаралт, алдааны утгыг оруулна: STDIN, STDOUT, STDERR (тэдгээрийг тус тусад нь 0, 1, 2-оор орлуулж болно). Ийм байдлаар, хэрэв бид ...

user @ laptop: ~ $ cat test 2> / dev / null
user @ laptop: ~ $

… Консол дээр алдааны мэдэгдэл гарахгүй гэдгийг бид харах болно.

Синтакс зайлшгүй шаардлагатай тул та анхааралтай байх хэрэгтэй: 2 ба> тэмдэгтүүдийн хооронд зай байх ёсгүй. Үгүй бол энэ нь дараахь зүйлийг өгөх болно.

user @ laptop: ~ $ cat test 2> / dev / null
cat: тестүүд: Файл эсвэл директор байхгүй байна
cat: 2: Файл эсвэл директор байхгүй байна

Үүний эсрэгээр> ба / dev / null-ийн хоорондох зай нь үр дүнд сөргөөр нөлөөлөхгүй.

Жишээлбэл, бид алдааны дахин чиглүүлэлтийг ашиглаж болно, жишээлбэл, бүртгэлийн файл дахь алдааг дараах байдлаар авах боломжтой.

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

Өөр нэг сонирхолтой тохиолдол бол алдаа гараагүй тохиолдолд үр дүнг өөр файлд цуглуулах явдал юм.

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

Эцэст нь стандарт гаралт ба алдааны гаралтыг нэгтгэсэн «> / dev / null 2> & 1» илэрхийлэлийг оруулах нь зүйтэй бөгөөд тэдгээрийг ямар ч тохиолдолд гаралтын мэдээллийг олж авахааргүй байдлаар чиглүүлнэ.


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

7 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Гуидо Игнасио Игнасио гэж хэлэв

    Аа, гэхдээ хамгийн их ашиглагддаг хэрэгслүүдийн нэг нь файлыг хоослох явдал юм: $ cat / dev / null> file.log Ийм байдлаар file.log файл хоосон болно. Нэмэх!

    1.    Эдуардо Х гэж хэлэв

      Энэ бол түүний хайж байсан тайлбар юм.
      Үүнийг нэмэх хөдөлгөөнийг дэмжиж байна =)

      Мэндчилгээ!

  2.   Пабло гэж хэлэв

    Сайн уу, юуны өмнө нийтлэл маш сайн байна! хоёрдугаарт би энэ сэдвээр энэ холбоосоор ямар нэгэн зүйл оруулахыг хүсч байна Cpanel-ээс php дээр cron ажил мөн блогт зориулсан гурав дахь баяр хүргэе!

  3.   Пабло гэж хэлэв

    Dev / null-ийн талаархи сайхан нийтлэл, би өмнө нь буруу газар буруу тайлбар хийсэн гэж бодож байгаа нь ямар ичмээр юм бэ! би уучлалт гуйж байна

  4.   нэр нь үл мэдэгдэгч гэж хэлэв

    сайн хувь нэмэр оруулсанд баярлалаа

  5.   Жерс гэж хэлэв

    Сайн байцгаана уу би дайрч байна. Би andrirc ашигладаг бөгөөд би хоч нэрээсээ Null гэсэн үгтэй хувийн хүн авдаг. 2 секундын дараа миний уншиж байсан програм хаагдаж, үүнийг зөвхөн гадны хүн биш зөвхөн Shell хийж чадна. Би өөрийгөө үл тоомсорлохыг хичээсэн / -lrpcntikd-ийг үл тоомсорлохыг хичээгээд надад юу ч гайхах зүйл алга. Хэрэв танд үүнийг хаахыг оролдох арга байгаа бол би талархах болно. Баяр хүргэе

  6.   София Мартинез гэж хэлэв

    Хэрэв өгүүлбэрийг гүйцэтгэх үед> тэмдгийг байрлуулаагүй бол юу болох вэ?

    Хэн нэгэн намайг удирдаж болох уу?