2013-03-03 15 views
17

Sono nuovo al comando tar. Ho molti file in una directory: 1_1_1.txt, 1_1_2.txt, 2_1_1.txt, 2_1_2.txt ..Come tar un set di file?

So che c'è un comando:

tar cf file.tar *.txt 

che sarà tar tutti i quattro file in file.tar. Ma ho bisogno di tar 1_1_1.txt e 1_1_2.txt in un file tar e 2_1_1.txt e 2_1_2.txt in un altro file tar. Come posso realizzare questo?

+4

Beh, hai provato esso? –

+0

si utilizza un ciclo se c'è uno schema nei nomi di file n molti file da creare –

+2

tar xzf estrarrà un tarball. intendi tar czf, che creerà un tarball gzip: .tar.gz, cf creerà .tar – iain

risposta

25

Per creare semplicemente un archivio di questi file, farei semplicemente:

tar cf ones.tar 1_*.txt 
tar cf twos.tar 2_*.txt 

Molto probabilmente si desidera comprimere i tarball, in modo da utilizzare l'opzione z:

tar czf ones.tar.gz 1_*.txt 
tar czf twos.tar.gz 2_*.txt 

visualizzare il contenuto dei vostri tarball con tar tf <tarball>.

+0

Grazie. Questo è quello di cui ho bisogno. –

2

Provate questo:

find . -maxdepth 1 -name "*.txt" -exec tar -rf test.tar {} \;

Se si desidera includere tutti i file, tra cui le sottocartelle, rimuovere "-maxdepth 1"

è possibile utilizzare modelli come "1_1 * .txt"

4

si può semplicemente utilizzare il seguito comandi

tar cf file1.tar 1_1_1.txt 1_1_2.txt 

tar cf file2.tar 2_1_1.txt 2_1_2.txt 
Problemi correlati