Usare tar per decomprimere il file nella directory mentre la shell è da qualche altra parte


0

Ho pensato che sarebbe stata una semplice domanda a cui rispondere, ma ovunque io giro TUTTI si aspetta che tar sia nella stessa directory della shell.

Il mio file si trova:

/tmp/my_file.tar.gz

Voglio estrarlo nella seguente directory:

/opt/

La mia shell si trova attualmente su:

~/

Risposte:


4
  1. GNU tarha un'opzione -C(o --directory) che puoi usare. Per esempio

    tar -C /opt -x -z -f /tmp/my_file.tar.gz

    o

  2. È possibile utilizzare una subshell semplice. Per esempio

    (cd /opt; tar -xvzf /tmp/my_file.tar.gz)

    dopo questo, la directory corrente è ancora ~/, l' cdunica influenza la subshell. Questo approccio è utile per comandi e utilità privi di -Cun'opzione o equivalente.

Si noti che è necessario assicurarsi che i percorsi memorizzati nel file tar siano percorsi relativi non percorsi assoluti . Ciò è determinato dal comando utilizzato per creare il file tar. Puoi verificarlo usando tar -tzf ...e ispezionando il primo carattere dei percorsi (ad es. /foo/...È un percorso assoluto foo/...o ./foo/...sono relativi). Fai particolare attenzione se esegui questo come root. Saresti in un mondo di dolore se da qualche parte in una lunga lista di percorsi relativi c'è un /etc/passwdo peggio. Ma vedi l' opzione GNU tar -P - questo potrebbe non essere un problema sulla tua piattaforma specifica. Verificherei attentamente prima di procedere.

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.