linux zip e tar tutti i file con una specifica estensione che ricorsivamente mantiene la struttura delle directory


0

Simile a questa domanda e questa domanda vorrei creare un singolo file tar compresso (files.tar.gz) che contenga tutti i file php nella mia webroot e tutte le sue sottodirectory, mantenendo la struttura delle cartelle. Il mio webroot si chiama 'public_html'.

Non ho ancora provato nulla perché non sono sicuro da dove cominciare. La seconda domanda che ho collegato in realtà si avvicina molto a ciò che sto cercando, ma rende ogni file trovato un GZ separato, se l'ho letto bene.

In realtà, la natura monolitica del catrame è per me più importante della compressione di gzip. Voglio solo tirare questo file sul mio computer Windows dove posso cercarlo con gli strumenti a cui sono abituato.


Penso di aver bisogno di controllare i miei fatti. Ho appena testato find . -name '*.html' -print | xargs echonel mio webroot. stampa una sola riga . Pertanto, l'esempio 2 a cui sei collegato crea un singolo file.
Hennes,

Risposte:


4

find -iname '*.php' -print0 | xargs -0 tar -rf php_backup.tar

Questo utilizza la seconda risposta a cui sei collegato, ma sostituisce -ccon-r

Da man tar:

-c      Create a new archive containing the specified items.
-r      Like -c, but new entries are appended to the archive.  Note that
        this only works on uncompressed archives stored in regular files.
        The -f option is required.

Un'altra opzione sarebbe quella di sostituire -print0 con -exec. Penso che sarà più efficiente, ma potrebbe rompersi se si dispone di migliaia o dieci o migliaia di file.

[Modificare]

1) I -print0 e -0 dopo gli xarg sono necessari solo se si hanno scomodi separatori nei nomi dei file. (leggi i nomi con spazi). Potresti non averne bisogno.

2) Ho controllato di nuovo il comando e testato. find /public_www -name '*.php' -print | xargs alimenta una sola riga a xargs. Quindi l'esempio a cui ti sei collegato si traduce in qualcosa di simile xargs -0 tar -cf docs.tar *.phpe dovrebbe anche funzionare.


Grazie. Ho provato la tua prima versione e, per quanto ne so, ha funzionato perfettamente, ma è bello avere le informazioni aggiuntive per il prossimo utente.
TecBrat,
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.