Как избавиться от сообщения «блоков», данного cpio?

Я пытаюсь просмотреть это: Как получить сумму MD5 содержимого каталога в виде одной суммы? , и поэтому я пытаюсь:

$ find | LC_ALL=C sort | cpio -o | md5sum 25324 blocks 6631718c8856606639a4c9b1ef24d420 - 

Хм … Я бы хотел просто хеш, а не что-то еще в выходе … поэтому, предполагая, что «25324 блоков» было напечатано в stderr, я пытаюсь перенаправить stderr в /dev/null :

 $ find | LC_ALL=C sort | cpio -o | md5sum 2>/dev/null 25324 blocks 6631718c8856606639a4c9b1ef24d420 - 

Нет, это не так. Давайте просто ради сателлитов, попробуем перенаправить stdout на /dev/null :

 $ find | LC_ALL=C sort | cpio -o | md5sum 1>/dev/null 25324 blocks 

Хорошо, поэтому хэш ушел, как ожидалось, но сообщение «блоки» все еще существует?! Где, черт возьми, этот «25324 блоков» напечатан, через файловый дескриптор 3?!:

 $ find | LC_ALL=C sort | cpio -o | md5sum 3>/dev/null 25324 blocks 6631718c8856606639a4c9b1ef24d420 - 

Нет, это не так … В любом случае, я могу получить хэш с awk:

 $ find | LC_ALL=C sort | cpio -o | md5sum | awk '{print $1}' 25324 blocks 6631718c8856606639a4c9b1ef24d420 

но все же выдается сообщение «блокирует» darn … Итак, как он печатается на терминале вообще (поскольку он, кажется, не печатается ни с помощью stdout, ни с stderr), и как я могу подавить это сообщение?


EDIT: нашел ответ, сообщение «блоки» напечатано cpio самом деле, поэтому правильная вещь:

 $ find | LC_ALL=C sort | cpio -o 2>/dev/null | md5sum | awk '{print $1}' 6631718c8856606639a4c9b1ef24d420 

Теперь у нас есть только хэш …

2 Solutions collect form web for “Как избавиться от сообщения «блоков», данного cpio?”

Сообщение печатается cpio , это позволяет избежать этого:

 find | LC_ALL=C sort | cpio -o 2> /dev/null | md5sum | awk '{print $1}' 

Как отмечает Гилл, вы потеряете все сообщения об ошибках, напечатанные cpio если вы используете этот подход. Некоторые версии cpio (по крайней мере, GNU и FreeBSD) поддерживают quiet вариант:

 find | LC_ALL=C sort | cpio -o --quiet | md5sum | awk '{print $1}' 

Чтобы избежать потери ошибок с версией cpio которая не поддерживает --quiet , вы можете записать их во временный файл:

 cpiolog=$(mktemp); find | LC_ALL=C sort | cpio -o 2> "${cpiolog}" | md5sum | awk '{print $1}'; grep -v blocks "${cpiolog}"; rm -f "${cpiolog}" 

Это сообщение напечатано cpio . С помощью GNU cpio или FreeBSD cpio передайте параметр --quiet для его подавления.

Или возьмите cpio и используйте стандартный pax или более обычный tar вместо этого.

  • Случайные аргументы (содержащие цветовые коды) из массива
  • Команда SSH не выходит должным образом
  • Как я могу выбрать один из результатов поиска и разрешить его открытие с помощью указанного приложения
  • Имена файлов сценария сценария
  • Как назначить {} переменной в find --exec
  • Вызов java из Bash: «Невозможно выполнить двоичный файл»
  • Буфер памяти в сценарии bash
  • В чем разница между «расширением» и «замещением» в терминах терминологии оболочки?
  • Как убить команду, выполненную из скрипта?
  • Выполнить команду if на удаленной машине
  • Вызов нескольких сценариев bash и их параллельное выполнение, а не последовательность
  • Interesting Posts

    Два сетевых интерфейса (eth0 и eth1) одной и той же машины Linux не могут пинговать друг друга

    Как получать приглашения на встречу от Office365, чтобы их можно было разобрать и добавить в календарь?

    Запустите процесс в определенном окне экрана, если он существует, в противном случае создайте этот экран, а затем сделайте это

    Как автоматически перемещать письма в папку СПАМ или JUNK вместо их удаления?

    FreeBSD не отображается в меню grub после установки на DualBoot. (Теперь система TriBoot)

    Поддельный Linux как устройство для Android

    Как найти копии данных данного файла в файловой системе Btrfs?

    Способ командной строки для загрузки видео с YouTube в многопоточном режиме

    В чем разница между / opt и / usr / local?

    supervisord в качестве сторожевого пса для различных служб

    EXT3 файловая система pre дайджест материал

    Где я могу найти файл ifcfg-eth0?

    Обновления Google Chrome после 32-битного прекращения

    Bash использовать альтернативный dotfile?

    Как изменить тему курсора в CLI?

    Linux и Unix - лучшая ОС в мире.