--diff
более предназначается в резервных целях. Например, чтобы проверить, необходимо ли это для tar
каталог снова, когда Вы планируете периодическое резервное копирование.
У меня нет подсказки об эффективности --verify
опция. Если Вы имеете сомнение относительно этого или хотите смочь проверить целостность Вашего tar
позже, можно использовать хеш.
Например:
> sha1sum etc.tar.gz
b30d837c623274908de2ebaceb72b07c54037546 etc.tar.gz
Затем сохраните эту строку в файл (давайте назовем ее etc.tar.gz.checksum
). И когда Вы хотите проверить целостность, переместите этот файл в каталог где etc.tar.gz
и выполнен:
> sha1sum -c etc.tar.gz.checksum
etc.tar.gz: OK
sha1sum
обеспечивают openssl
.
Обновление: начиная с zsh v. 5.1
, встроенная функция printf
поддерживает группировку тысяч через '
точно так же, как bash
/ coreutils
printf
(см. Также обсуждение здесь ).
Разделитель тысяч - это расширение GNU, которое zsh не поддерживает , и у него есть собственная встроенная функция printf
, которую вы в конечном итоге используете. Как упоминалось в связанной публикации, вы можете получить разделитель тысяч, зависящий от локали, с помощью:
zmodload zsh/langinfo
echo $langinfo[THOUSEP]
Если вам нужно использовать zsh специально и исключительно, вы можете использовать его с sed.
Вероятно, проще будет использовать вместо этого не встроенную функцию printf
из GNU coreutils , которая разрешит параметр разделителя тысяч, если ваша система это делает:
$ command printf "%'d\n" 1234567890
1,234,567,890
команда printf
сообщает shell не для использования встроенных функций или псевдонимов, а для поиска команды в $ PATH
.
В дополнение к ответу Михаила, можно было бы выполнить форматирование тысячных сэпов вручную с помощью операторов zsh
с помощью операторов :
var=1234567
zmodload zsh/langinfo
setopt extendedglob
echo $var[1,(l=-($#var-1)/3*3)-1]${var[l,l?-1:l]//(#m)???/$langinfo[THOUSEP]$MATCH}