Файлы в изменении архивов, или просто новые добавленные?
Если Вы только добавляете файлы и не изменяете никого, попробуйте что-то вроде этого:
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
и так далее.
echo
добавляет новую строку, если Вы не говорите ее не путем помещения -n
сначала или \c
в конце или помещении -e
сначала и \c
в конце или... Вы действительно не хотите знать все варианты эха. Использовать printf moo > cow
и у Вас будет файл с нулевыми строками.
printf
является намного более портативным, чемecho
. – jw013 04.09.2012, 03:21