Bash - отзывается эхом линию за линией, игнорируя пространство между строками

Первая ошибка состоит в том, потому что Вы являетесь передающими оба -H newc и -c. Необходимо решиться на формате архива, который Вы хотите генерировать. "Операция, не разрешенная", является ошибкой в GNU cpio, это передает неправильные аргументы функции, что выводы, из которых сообщение об ошибке и должно выйти там.

Другие ошибки состоят в том, потому что Вы не выполняете ту команду как суперпользователь или более вероятно, Вы не выполняете ее от корректного местоположения. Только суперпользователь может считать файлы как /etc/shadow поскольку это содержит уязвимую информацию. Необходимо также удостовериться, что архив, который Вы генерируете, может только быть считан суперпользователем. Если это initramfs Вы создаете, возможности /etc/shadow не имеет бизнеса, являющегося там, если это initramfs содержит полную операционную систему.

3
13.04.2017, 15:36
2 ответа

Для чтения файла линию за линией, стандартная процедура

while IFS= read -r MD5_COMPARE
do
  echo "- $MD5_COMPARE"
done < /tmp/md5sum2.tmp | /bin/sort -d

, Но sed должен работать также

/bin/sort -d /tmp/md5sum2.tmp | sed 's/^/ -/'
5
27.01.2020, 21:14

Просто проводит вывод из сортировки на SED и заменить одно пространство - :

if [ -s /tmp/md5sum2.tmp ];
then
        echo ""
        echo "Comparison of MD5 for files archived:"
        echo '---------------------------------------'
        /bin/sort -d /tmp/md5sum2.tmp | sed 's/\(^ *\) \( [^ ]\)/\1-\2/'
fi

Результат:

Comparison of MD5 for files archived:
---------------------------------------
    - My-config_17Oct2014.tgz: OK
    - config_file.tgz: OK
    - hostname1-config.uac: OK
    - hostname2-config.uac: OK
    - hostname3-config.uac: OK
    - non_extension-config_file1: OK
    - non_extension-config_file1: OK
1
27.01.2020, 21:14

Теги

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