Tar uma pasta inteira EXCETO alguns arquivos e pastas?

1

Eu tenho uma estrutura de pastas assim:

file1
file2
file3
file4
folder1
folder2

Sem escrever cada arquivo, como posso tar zip todos os arquivos e pastas, exceto file1 e folder1?

    
por coderama 11.11.2009 / 09:07

3 respostas

4

o tar tem um switch --exclude.

    
por 11.11.2009 / 09:11
5

Você pode usar a opção --exclude=pattern , que impede que qualquer arquivo ou membro cujo nome corresponda ao curinga (padrão) seja operado. Por exemplo, para criar um arquivo com todo o conteúdo do diretório src , exceto os arquivos cujos nomes terminam em .exe , use o comando tar -cf src.tar --exclude='*.exe' src

    
por 11.11.2009 / 09:13
1

Without writing each file, how can I tar zip all the files and folders, except file1 and folder1?

Supondo que a pasta principal que contém todos os arquivos / pastas que você deseja compactar esteja localizada em /home/admin/mystuff/ (ou seja, /home/admin/mystuff/file1 , /home/admin/mystuff/folder1/ , etc), qualquer um dos itens a seguir deve funcionar.

Se você estiver dentro da pasta /home/admin/ , poderá fazer isso:

tar -cz --exclude mystuff/file1 --exclude mystuff/folder1/ -f my_new_file.tar.gz mystuff

Ou, se você estiver dentro do diretório que deseja compactar (nesse caso, /home/admin/mystuff/ ), poderá fazer isso:

tar -cz --exclude file1 --exclude folder1/ -f my_new_file.tar.gz .

Anote o ponto no final da segunda opção.

Observe também que usei tar -cz porque prefiro .tar.gz files ... Se você quiser apenas um arquivo .tar , basta alterar o comando para tar -c --exclude [...] (removendo z de -cz ) e, em seguida, altere o arquivo de saída de my_new_file.tar.gz para my_new_file.tar .

    
por 25.05.2013 / 21:47

Tags