Призначення / dev / zero?


49

Я намагався cat /dev/zero, але, здавалося, нічого не робив. Я гугл /dev/zero, і він говорить, що це в основному порожній файл з нескінченним розміром. Чи catдрукується нескінченна кількість неіснуючих символів? Як це працює? Як воно надає нескінченні дані, якщо це 0 байт? У чому полягає користь цього файлу, якщо можна просто створити порожній файл?


11
Біжіть, cat -v /dev/zeroщоб побачити, що це робить. Див. Розділ Очищення невикористаного простору з нулями (ext3, ext4) для загальних цілей.
манатура

Є також / dev / null, який веде себе як порожній файл, якщо ви хочете прочитати його, і як чорна діра, якщо ви пишете в нього.
jofel

@jofel, але ви не можете використовувати / dev / null для нескінченних 0-біт, правда? cat foo > /dev/nullі cat foo > /dev/zeroте ж саме, але cat /dev/nullі cat /dev/zeroне те ж саме, правильно?
tkbx

@tkbx так, правильно. /dev/nullповертається негайно EOF, якщо програма хоче прочитати з нього. /dev/zeroповертає нескінченно 0-байт.
jofel

Відповіді:


53

/dev/zeroце спеціальний файл (в даному випадку псевдо-пристрій), який забезпечує нескінченний потік нульових символів (так hex 0x00)? Ось чому ваш catнічого не виводить (але спробуйте запустити його od(восьмеричний дамп)).

"порожній файл з нескінченним розміром" не є на 100% правильним: це не звичайний файл, а спеціальний файл (більше схожий на "потік" або генератор). Ви можете прочитати з нього стільки, скільки хочете, наприклад, з dd(як dd if=/dev/zero of=yourfile count=1024 bs=1024).

Це насправді не порожній файл, а також не створений порожні файли: він використовується для створення файлів або сторінок пам'яті, заповнених лише нулями. Ви також можете писати до нього, роблячи його виконувати як раковину ( /dev/nullхоч для цього частіше використовується його більш популярний брат ).


Чому хтось хотів би заповнити порожнє місце?
tkbx

5
Наприклад, стерти те, що там було раніше. Або при передачі.
Конерак

4
Я не читав srmпосібника чи джерела, але більшість "захищених гумків" вважають за краще записувати (псевдо-) випадкові дані замість нульового накопичувача, оскільки один пропуск нульового сигналу недостатньо безпечний (певні трибуквені агенції Ви все ще можете вирахувати оригінальний вміст нульового жорсткого диска, оскільки окремі біти не є 100% істинно 1 або 0, а просто "в основному 1" або "переважно 0". Порівняйте його з важелем, який ви можете поставити "весь шлях ліворуч "або" все правильно ", але зазвичай достатньо лише гойдалки в інший бік.
Konerak

11
@tkbx намагаючись ddрозділити, ви можете заповнити весь порожній простір до 0, а не випадково, щоб пізніше отримати менший стислий файл.
neurino

1
@Konerak Я до цього досить підозрілий. Я чув, як це говорилося всюди, і ніколи не бачив доказів того, що це можливо на будь-якому віддаленому новому жорсткому приводі (зробленому принаймні за останні 10 років).
Роб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.