bash4: команда cp не может видеть файлы при заключении пути к файлу в двойные кавычки

Поскольку вы извлекаете файл tar.gz из стандартного ввода, вам не нужно указывать параметр f , tar по умолчанию читает из стандартного ввода.

Предполагая, что вы хотите извлечь содержимое в $ DESTDIR, вам также необходимо использовать опцию GNU tar -C (сменить каталог).

Я также заключил переменные в кавычки " на случай, если $ SRC_URI или $ DESTDIR содержат пробелы или метасимволы оболочки - & , * ], ? и т. Д.

Наконец, фигурные скобки {} вокруг переменных здесь не являются обязательными, но я все равно оставил их - они определенно не причиняйте никакого вреда.

Собирая все вместе, вы получаете:

wget -q -O- "${SRC_URI}" | tar -xz -C "${DESTDIR}"
0
13.06.2018, 17:51
1 ответ

* заменяется именами файлов в папке, а "*"не заменяется.

Но ваше "впечатление" верное, вы должны цитировать все части, из которых вы не на 100% уверены, что в ней нет места.

Вы можете смешивать части в кавычках и -в кавычках:

sudo cp -a "$_source"/*.txt "$_destination"/Other/
7
28.01.2020, 02:14

Теги

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