Странное поведение Tar с опцией - C - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь создать архив tar, используя опцию - C. Я также использую $ (ls), чтобы убедиться, что tar не жалуется на отсутствующие файлы.

Я вижу странное поведение, когда команда работает при запуске из одних путей, а не из других. Я не могу объяснить это.

  • Что я хочу смолить: /opt/server/nginx/etc/nginx/nginx.conf
  • [В этом случае файл присутствует].
  • Я не хочу сохранять полный путь, поэтому я использую - C / opt / server / nginx / etc / nginx
  • / tmp / backup / папка присутствует.

Ошибка:

(venv) root@bhakta-at-host-1:/opt/server/agent# cd /root
(venv) root@bhakta-at-host-1:~# tar -cvzf /tmp/backup/NginxServer_cfg_save.tgz -C /opt/server/nginx/etc/nginx/ $(ls -d nginx.conf)
ls: cannot access 'nginx.conf': No such file or directory
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
(venv) root@bhakta-at-host-1:~#
(venv) root@bhakta-at-host-1:~#

Ошибка:

(venv) root@bhakta-at-host-1:/tmp# cd /var/tmp
(venv) root@bhakta-at-host-1:/var/tmp# tar -cvzf /tmp/backup/NginxServer_cfg_save.tgz -C /opt/server/nginx/etc/nginx/ $(ls -d nginx.conf)
ls: cannot access 'nginx.conf': No such file or directory
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
(venv) root@bhakta-at-host-1:/var/tmp#

Работы:

(venv) root@bhakta-at-host-1:~# cd /tmp
(venv) root@bhakta-at-host-1:/tmp# tar -cvzf /tmp/backup/NginxServer_cfg_save.tgz -C /opt/server/nginx/etc/nginx/ $(ls -d nginx.conf)
nginx.conf

Работы:

(venv) root@bhakta-at-host-1:/opt/server/nginx/etc/nginx# tar -cvzf /tmp/backup/NginxServer_cfg_save.tgz -C /opt/server/nginx/etc/nginx/ $(ls -d nginx.conf)
nginx.conf
(venv) root@bhakta-at-host-1:/opt/server/nginx/etc/nginx#

Работы:

(venv) root@bhakta-at-host-1:/var/tmp# tar -cvzf /tmp/backup/NginxServer_cfg_save.tgz -C /opt/server/nginx/etc/nginx/ nginx.conf
nginx.conf

Так что здесь происходит? Похоже, что-то связано с - C и $ (ls)

Версии:

(venv) root@bhakta-at-host-1:/opt/server/nginx/etc/nginx# tar --version
tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
(venv) root@bhakta-at-host-1:/opt/server/nginx/etc/nginx# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
...