tar
memorizza i percorsi relativi per impostazione predefinita . Tar GNU lo dice anche se si tenta di memorizzare un percorso assoluto:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Se devi estrarre una cartella particolare, dai un'occhiata a cosa c'è nel file tar:
tar -tvf foo.tar
E nota il nome esatto del file. Nel caso del mio foo.tar
file, potrei estrarre /home/foo/bar
dicendo:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Quindi no, il modo in cui hai pubblicato non è (necessariamente) il modo corretto per farlo. Devi lasciare fuori la barra iniziale. Se vuoi simulare percorsi assoluti, esegui cd /
prima e assicurati di essere il superutente. Inoltre, questo fa lo stesso:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Ci sono molte ovvie ragioni per cui tar
converte i percorsi in percorsi relativi. Uno è la possibilità di ripristinare un archivio in luoghi diversi dalla sua fonte originale. L'altro è la sicurezza. Potresti estrarre un archivio, aspettarti che i suoi file appaiano nella tua attuale directory di lavoro, e invece sovrascrivere i file di sistema (o il tuo lavoro) altrove per errore.
Nota: se si utilizza l' -P
opzione, tar
verranno archiviati i percorsi assoluti. Quindi vale sempre la pena controllare il contenuto dei grandi archivi prima di estrarlo.