Добавить один файл в TAR

La razón por la que su comando no funciona es porque la eliminación de comillas/división de palabras no se aplica de forma recursiva.

Entonces "$old_dest"se expande al argumento ÚNICO que sigue a:

--link-dest "/media/t/my external hdd/backup/old one"

Todo eso es UN argumento, porque la variable estaba entre comillas dobles.(Y esas comillas dobles se eliminan, pero las comillas dobles que resultaron de la expansión , es decir, eran parte del valor de la variable, no se eliminan.)

Si usara $old_desten su lugar, obtendría múltiples argumentos, pero no de la forma que desea. Obtendría los siguientes CINCO argumentos:

--link-dest
"/media/t/my
external
hdd/backup/old
one"

Esto se debe a que obtendría una expansión variable seguida de una división de palabras, como se explica en el manual. No obtendría una expansión variable seguida de la interpretación de las comillas en la variable. Y las comillas no se eliminarían, por lo que el argumento final serían los cuatro caracteres:one".

La forma correcta de hacerlo, como se explica en otra respuesta, es usar arreglos Bash.


En una nota aparte, puede disfrutar de cómo Tcl maneja las comillas y la división de palabras. Probablemente sea más intuitivo, aunque tengo tanta práctica con la división de palabras de Shell que tengo que pensar más en Tcl que en Shell.

-3
13.06.2019, 11:58
0 ответов

Теги

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