команда tar -cvfz приводит к сообщению об ошибке, если не опустить дефис перед 'cvfz' [дубликат]

Возможный дубликат:
sudo tar cvpzf выходит с ошибкой из-за предыдущей ошибки

Когда я выполняю команду

tar -cvfz backup.tar.gz somedirectory

я получаю следующий sterr

tar: Exiting with failure status due to previous errors

Однако когда я опускаю предыдущий дефис из -cvfz, все работает нормально. Есть ли известная причина, по которой дефис мешает мне залить файлы в tar'ing?

5
задан 13 April 2017 в 15:25

1 ответ

Я не уверен, почему tar cvfz работает, когда при быстром просмотре страницы man и моем опыте дефис является стандартной практикой. Может быть, это совместимость с BSD (например, ps).

В любом случае, ваш синтаксис неверен. -f принимает следующий аргумент в качестве имени файла для сжатия. В данном случае это имя файла z, что не соответствует вашим ожиданиям. Вот пример выходных данных, чтобы вы могли понять, что я имею в виду:

$ tar -cvfz test.tar.gz scott
tar: test.tar.gz: Cannot stat: No such file or directory
scott/
scott/netx/
scott/netx/locks/
scott/netx/locks/netx_running
tar: Exiting with failure status due to previous errors

В ls показан файл с именем z. Команда file показывает, что это несжатый архив tar. Это несжатый, потому что аргумент -z не был передан. И сообщение об ошибке возникло при попытке добавить несуществующий файл test.tar.gz в архив.

Просто измените порядок опций, и все будет в порядке:

tar -czvf test.tar.gz some/directory

Если вы всегда сделаете -f последним аргументом, все будет в порядке. Кстати, помните, что короткие опции (однобуквенные опции), которые принимают аргументы, обычно не требуют пробела между опцией и аргументом.

РЕДАКТИРОВАТЬ: Кстати, если форма без дефиса совместима с BSD или что-то в этом роде, то, вероятно, способ, которым tar вызывается в такой среде, отличается и не требует флага f для указания входного файла, но работает больше как cp или что-то в этом роде. Но это всего лишь предположение, основанное на сравнении с ps (кн.).

0
ответ дан 13 April 2017 в 15:25

Другие вопросы по тегам:

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