Como posso remover arquivos automaticamente depois que eles foram arquivados?

5

Como faço para arquivar e remover arquivos em excesso, por exemplo.

cd ~/Desktop && tar -cvf sitepack.tar ./

isso me dará

ls
Riva_Starr_Feat._Noze_I_Was_Drunk_Official_Video_HD_.mp3
Riva_Starr_feat._Sud_Sound_System_Orizzonti_Official_Vide.mp3
Riva_starr_I_was_drunk_Syskey_remix_.mp3
sitepack.tar

quando o que estou procurando é

ls
sitepack.tar

então arquive tudo no zip em vez de deixá-los no lugar?

    
por user1503606 18.10.2012 / 12:10

2 respostas

11

Se você estiver usando o GNU tar , você pode usar a opção --remove-files :

--remove-files

remove files after adding them to the archive

Isso não é portátil embora.

Se o seu tar não tiver isso, você precisará fazê-lo manualmente, em duas etapas.
Eu sugiro que você não coloque o arquivo tar no diretório que está empacotando, mas coloque-o no diretório pai. Dessa forma, você pode simplesmente rm * (possivelmente recursivamente) depois que tar estiver pronto.

    
por 18.10.2012 / 12:39
1
[max@localhost zzz]$ touch 1 2 3 4
[max@localhost zzz]$ ll
total 0
-rw-rw-r-- 1 max max 0 Oct 18 16:13 1
-rw-rw-r-- 1 max max 0 Oct 18 16:13 2
-rw-rw-r-- 1 max max 0 Oct 18 16:13 3
-rw-rw-r-- 1 max max 0 Oct 18 16:13 4

Para criar um arquivo, use este comando

-c --------- > Para criar um archeive

[max@localhost zzz]$ tar -cvf max.tar 1 2 3 4
1
2
3
4
[max@localhost zzz]$ ls -l max.tar 
-rw-rw-r-- 1 max max 10240 Oct 18 16:14 max.tar

Para listar um conteúdo de arquivo use este comando

-t --------- > Listar todos os arquivos no arquivo

 
[max@localhost zzz]$ tar -tvf max.tar
-rw-rw-r-- max/max           0 2012-10-18 16:13 1
-rw-rw-r-- max/max           0 2012-10-18 16:13 2
-rw-rw-r-- max/max           0 2012-10-18 16:13 3
-rw-rw-r-- max/max           0 2012-10-18 16:13 4

Para extrair use este comando

-x --------- > Para extrair do arquivo

-v --------- > Para o modo detalhado

[max@localhost zzz]$ tar -xvf max.tar -C direc1
1
2
3
4

Aqui -C extrai o conteúdo para o diretório direc1

Para extrair um único arquivo do archieve use este comando

[max@localhost zzz]$ tar -xvf max.tar 1 -C direc1
1

Give the file name you want to archive in my case file name is '1'

[max@localhost zzz]$ tar -cvf max.tar 1 2 3 4 --remove-files

Isso removerá os arquivos originais depois de alcançar

    
por 18.10.2012 / 12:58