catrame con percorsi relativi


24

Provo a creare un archivio con tar usando percorsi relativi. Uso il seguente comando:

tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order

Ma i file archiviati hanno ancora percorsi assoluti. Come posso usare tar con percorsi relativi?


Risposte:


24

'~' viene espanso dalla shell. Non usare '~' con -C:

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~ \
       webapps/zers/wp-content/plugins/my-page-order

(tar includerà webapps / zers / wp-content / plugins / my-page-order path) o

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~/webapps/zers/wp-content/plugins \
       my-page-order

(tar includerà il percorso del mio ordine di pagina)

O semplicemente cd prima ....

cd ~/webapps/zers/wp-content/plugins
tar czf ~/files/wp/my-page-order.tar.gz my-page-order

2
Spiegazione sbagliata Non importa qui che ~ sia espanso dalla shell. Ciò che conta è che -Ccambia l'attuale directory di lavoro come spiegato in risposta da Lekensteyn.
Piotr Dobrogost,

1
No - guarda la domanda originale - l'ultimo argomento è un percorso assoluto.
symcbean,

E allora? Entrambe le istanze di ~ vengono espanse e l'intera invocazione non funziona come previsto solo perché l'ultimo argomento in caso di utilizzo -Cavrebbe dovuto essere indicato come percorso relativo ma invece come percorso assoluto. L'uso di ~ qui non ha alcuna importanza.
Piotr Dobrogost,

11

-C new_cwdcambia la directory di lavoro corrente in new_cwd. I seguenti argomenti vengono quindi valutati in relazione a new_cwd.

tar czf ~ / files / wp / my-page-order.tar.gz -C ~ / webapps / zers / wp-content / plugins / my-page-order


4

La soluzione non GNU se tarnon ha -zopzioni, solo per citare:

pushd ~/files/wp; tar cvf - my-page-order | gzip > my-page-order.tar.gz && rm -rf my-page-order; popd

MODIFICA (con &&e senza rm):

pushd ~/files/wp && tar cvf - my-page-order | gzip > my-page-order.tar.gz && popd

(1) La domanda non dice nulla in merito rm; perché lo includi nella tua risposta? (2) La tua risposta archivia la directory sbagliata. (3) Perché sei passato tar -za tar | gzip? (4) Fintanto che stai per usare &&, probabilmente dovresti usare anche &&dopo pushd.
G-Man dice "Reinstate Monica" il

(1) Hai ragione (2) davvero? Qual è quello buono? (3) questo è il punto: la versione non GNU di tar (es. Su Unix), non ha -z (4) probabilmente &&
userei

(2) OP vuole archiviare ~/webapps/zers/wp-content/plugins/my-page-ordercon output in ~/files/wp/my-page-order.tar.gz; i tuoi archivi di comando ~/files/wp/my-page-order. (3) Grazie per aver modificato la tua risposta per spiegare perché l'hai utilizzata gzip.
G-Man dice "Reinstate Monica" il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.