Используя подстановочные знаки с tar

Я использую эту команду для резервного копирования некоторых важных конфигурационных файлов:

tar -czvf /var/backups/201102121202.tgz -C / etc/crontab etc/httpd/conf.d/* etc/httpd/conf/httpd.conf etc/httpd/passwords etc/httpd/vhost/* etc/php.ini etc/my.cnf etc/ssh/* etc/hosts etc/sysconfig/iptables var/spool/cron/* etc/passwd etc/group root/iptables_config etc/postfix/main.cf etc/postfix/master.cf etc/postfix/transport etc/postfix/valid_recipients etc/postfix/virtual etc/sysconfig/memcached etc/php.d/apc.ini etc/selinux/config etc/yum.repos.d/* etc/list_of_installed_packages.txt etc/safe-rm.conf home/*/.bash* home/*/.ssh usr/local/bin/* usr/local/sbin/* /etc/pki/tls/certs/mysite.com.crt /etc/pki/tls/private/mysite.key /etc/pki/tls/certs/gd_bundle.crt

Когда я выполняю его, я добираюсь:

tar: etc/httpd/conf.d/*: Cannot stat: No such file or directory
tar: etc/httpd/vhost/*: Cannot stat: No such file or directory
tar: etc/ssh/*: Cannot stat: No such file or directory
tar: var/spool/cron/*: Cannot stat: No such file or directory
tar: etc/yum.repos.d/*: Cannot stat: No such file or directory
tar: home/*/.bash*: Cannot stat: No such file or directory
tar: home/*/.ssh: Cannot stat: No such file or directory
tar: usr/local/bin/*: Cannot stat: No such file or directory
tar: usr/local/sbin/*: Cannot stat: No such file or directory
tar: Removing leading `/' from member names
tar: Error exit delayed from previous errors

Кажется, что я не могу использовать подстановочные знаки в путях.
Как я могу зафиксировать или обходное решение это?

Спасибо,
Dan

1
задан 16.02.2011, 03:42

3 ответа

Вероятная проблема состоит в том, что Вы не находитесь в корневом каталоге (/), но Ваши подстановочные знаки предполагают, что Вы. Помните, что оболочка разворачивает подстановочные знаки на командной строке прежде, чем вызвать программу. Так Вы etc/ssh /* относительно Вашего текущего рабочего каталога, который, вероятно, не существует. Выполненный (cd /; tar ... etc/ssh/* ...) вместо этого.

2
ответ дан 12.12.2019, 09:15

Вы пропускаете a / перед началом имен. Оболочка будет только имена шарика, если они будут полными путями. Кроме того, если Вы делаете это, нет никакой потребности в использовании -C.

1
ответ дан 12.12.2019, 09:15

Попытайтесь отбросить * (или возможно /*).


Синтаксис остатка...

Когда файл является путем каталога, действие относится ко всем файлам и (рекурсивно) подкаталогам того каталога.

http://www.computerhope.com/unix/utar.htm

1
ответ дан 12.12.2019, 09:15

Теги

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