Каково различие между 'бакалавром наук', 'количеством', и 'ищите' в команде dd?

От вывода dpkg -l 'libglib2.0-0', ii означает, что пакет установлен и настроен.

Так как пакет загружен и уже установлен, поэтому теперь больше сетевого трафика, вот почему установщик программного обеспечения сказал Вам загруженных 0 байтов.

Для удаления пакета использовать apt-get remove libglib2.0-0. бойкий связан с большим количеством пакетов, Вы, вероятно, разрушите свою систему после этого. Вы не можете удалить его из центра программного обеспечения, потому что это имеет другие зависимости, например, важные системные двоичные файлы.

24
27.03.2018, 21:39
2 ответа

Я действительно не знаю, как объяснить это лучше, чем справочная страница.

bs = устанавливает размер блока, например bs = 1M будет размером блока 1MiB.

count = копирует только это количество блоков (по умолчанию dd продолжает работать вечно или пока входные данные не закончатся). В идеале блоки имеют размер bs = , но могут быть неполные чтения, поэтому, если вы используете count = для копирования определенного количества данных ( count * bs ), вы также должны указать iflag = fullblock .

seek = ищет это количество блоков в выводе вместо записи в самое начало устройства вывода.

Так, например, это копирует 1MiB из y \ n в позицию 8MiB выходного файла. Таким образом, общий размер файла будет 9 МБ.

$ yes | dd bs=1M count=1 seek=8 iflag=fullblock of=outputfile
$ ls -alh outputfile
9.0M Jun  3 21:02 outputfile
$ hexdump -C outputfile
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00800000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
00900000

Поскольку вы упоминаете / dev / random и перезаписываете разделы ... это займет вечность, так как / dev / random (а также / dev / urandom ) идет слишком медленно. Вместо этого вы можете просто использовать shred -v -n 1 , это быстро и обычно доступно где угодно.

27
27.01.2020, 19:40

Хорошо, вы сказали, что страницы руководства не детализированы, поэтому я объясню, что они означают, с помощью простых для понимания метафор о движущемся парне (это называется name of dd ):

   bs=BYTES
          read and write up to BYTES bytes at a time

dd поднимает что-то (коробки, вазы, кровати, рис и т. д.), перемещается туда, где это необходимо, и бросает это. Пока он не уронит груз, он больше ничего не выбирает.Теперь, когда вам нужно сказать ему, сколько объектов он должен выбрать за одно путешествие, это то, что делает bs . Вы устанавливаете объем данных, которые он будет читать и писать. Это почти обязательно для всех полезных и распространенных команд.

   count=N
          copy only N input blocks

Это определяет общее количество ящиков, которые он переместит. Боксы в этом контексте - это блоки на диске . Вы говорите ему переместить 5 ящиков, он переместит только 5 ящиков, даже если ящиков больше 5 (если ящиков меньше 5, он возьмет вазу, которую он нашел, помимо ящиков, чтобы сложить ее). Если вы скажете dd count только 5 и запишите это где-нибудь, он скопирует первые 5 блоков, которые он видит, и запишет их там, где вы хотите.

   seek=N skip N obs-sized blocks at start of output

Обычно парень находит первое доступное место, чтобы сбросить нагрузку, обычно это начало (диска), и продолжает заполнять его до конца. Итак, вы говорите dd начать дальше, скажем, вместо холла, начать в одной из комнат дальше внутри. Он просто «пропускает» стартовые блоки.

Теперь, в зависимости от того, что вы делаете, вам потребуются различные комбинации в зависимости от источника и назначения, а также от формата, в котором они будут считываться и записываться. Я рекомендую вам искать их по отдельности.

21
27.01.2020, 19:40

Теги

Похожие вопросы