Suppression de fichiers après ajout à l'archive tar

GNU tar peut-il ajouter de nombreux fichiers à une archive, en supprimant chacun d'eux au fur et à mesure de son ajout?

ceci est utile quand il n'y a pas assez d'espace disque pour contenir toute l'archive tar ainsi que les fichiers originaux.

39
demandé sur Rory 2012-05-28 12:34:05

3 réponses

avec GNU tar, utilisez l'option --remove-files.

53
répondu Fred Foo 2012-05-28 08:50:46

j'ai eu des fichiers d'archives de tâches et puis j'ai supprimé dans OS installé " tar " sans GNU-options.

Méthode:

utiliser "xargs"

Supposons que nous avons un répertoire avec des fichiers.

besoin de déplacer tous les fichiers, au cours de la semaine dans tar et de le supprimer.

je fais une archive (arc.tar) et y a ajouté des fichiers. (Vous pouvez créer de nouvelles archives à chaque essai)

Solution:

find ./ -mtime +7 | xargs -I % sh -c 'tar -rf arc.tar % ; rm -f %'
3
répondu Vladimir Azarov 2013-11-30 10:22:45

Je ne suis pas sûr que vous puissiez ajouter des fichiers aux archives bzip2 sans les extraire d'abord. Cependant, voici une solution qui m'est venue à l'esprit (en vous donnant le pseudo-algorithme):

1. For each [file] in [all small files]
    1.1 compress [file] into [file].bz2
    1.2 (optionally verify the process in some way)
    1.3 delete [file]
2. For each [bzfile] in [all bzip files from step 1]
    2.1 append to tar (tar rvf compressedfiles.tar [bzfile]
    2.2 (optionally verify the process in some way)
    2.3 delete [bzfile]

Maintenant vous devriez avoir un fichier tar contenant tous les fichiers bzip2:ed individuellement. La question Est de savoir combien de overhead bzip2 ajoute aux fichiers individuels. Ce doit être testé.

0
répondu Tobbe 2016-05-12 12:14:53