Перенаправление ввода (<) добавляют символ новой строки?

Файлы в изменении архивов, или просто новые добавленные?

Если Вы только добавляете файлы и не изменяете никого, попробуйте что-то вроде этого:

tar ztf olddata.tar.gz | sort > tmpfile1
tar ztf newdata.tar.gz | sort > tmpfile2
diff tmpfile{1,2} > /dev/null
if test $? -eq 0
then
  echo ignore newdata.tar.gz
else
  echo keep olddata.tar.gz
fi
rm tmpfile{1,2}

Отметьте отсутствие v от команд оглавления tar.

Если Вы просто хотите пропустить архивы с идентичным содержанием, добавьте a v к соединению, как в:

tar ztvf olddata.tar.gz | sort > tmpfile1

и так далее.

3
04.09.2012, 03:03
1 ответ

echo добавляет новую строку, если Вы не говорите ее не путем помещения -n сначала или \c в конце или помещении -e сначала и \c в конце или... Вы действительно не хотите знать все варианты эха. Использовать printf moo > cow и у Вас будет файл с нулевыми строками.

4
27.01.2020, 21:20
  • 1
    +1: printf является намного более портативным, чем echo. –  jw013 04.09.2012, 03:21
  • 2
    Технически, единственный возможный файл с нулевыми строками является пустым файлом. Непустой файл, не запаздывая LF является файлом без надлежащего завершения последней строки. Вы могли зафиксировать вводящую в заблуждение формулировку в ответе? –  Incnis Mrsi 19.08.2015, 21:10

Теги

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