У меня есть точка монтирования, /media/xvdf1 которую я использую bindfs для монтирования в /var/lib/jenkins/jobs с пользователем / группой jenkins . Я хочу сделать резервную копию, но у меня недостаточно места на другом разделе. После сохранения файл должен быть загружен на S3 с помощью aws s3 cp .

Моя проблема в том, что если я использую tar для создания архива, он пытается скопировать файл, в который он записывает.

Разве не существует способ, позволяющий tar избежать получения собственного вывода?

2 ответа2

2

Вы можете использовать --exclude=pattern если вам нужно, хотя я не уверен, как вы делаете, где вам нужно это сделать.

Запуск следующего:

tar -cf test.tar .

Я получаю сообщение:

tar: ./test.tar: file is the archive; not dumped

но, возможно, это просто расширение GNU, хотя моя версия BSD дает аналогичные

tar: ./test.tar: Can't add archive to itself

Тем не менее, вы могли бы сказать это явно игнорировать это с

tar -cf test.tar --exclude=./test.tar .
1

Я тоже сталкиваюсь с подобной проблемой.

Это может работать так в примере

tar -cf test.tar .

Вы просите tar архивировать . Затем tar создает "пустой" файл test.tar для хранения содержимого. Но дело в том, что test.tar также является частью каталога . , Это выглядит как бесконечная рекурсия. Во всяком случае, tar кажется довольно умным и предотвращает это, так как в большинстве случаев это не то, что вы хотите.

Помимо использования --exclude , вы также можете попробовать

tar -cf test.tar ./*

Таким образом, вы просите tar архивировать (почти) все файлы в . перед запуском команды обратите внимание, что test.tar не включен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .