Поскольку вы извлекаете файл tar.gz из стандартного ввода, вам не нужно указывать параметр f
, tar
по умолчанию читает из стандартного ввода.
Предполагая, что вы хотите извлечь содержимое в $ DESTDIR, вам также необходимо использовать опцию GNU tar
-C
(сменить каталог).
Я также заключил переменные в кавычки "
на случай, если $ SRC_URI или $ DESTDIR содержат пробелы или метасимволы оболочки - &
, *
], ?
и т. Д.
Наконец, фигурные скобки {}
вокруг переменных здесь не являются обязательными, но я все равно оставил их - они определенно не причиняйте никакого вреда.
Собирая все вместе, вы получаете:
wget -q -O- "${SRC_URI}" | tar -xz -C "${DESTDIR}"
*
заменяется именами файлов в папке, а "*"
не заменяется.
Но ваше "впечатление" верное, вы должны цитировать все части, из которых вы не на 100% уверены, что в ней нет места.
Вы можете смешивать части в кавычках и -в кавычках:
sudo cp -a "$_source"/*.txt "$_destination"/Other/