Est-ce que GNU tar peut ajouter plusieurs fichiers à une archive, en les supprimant au fur et à mesure de leur ajout?
Ceci est utile lorsqu'il n'y a pas assez d'espace disque pour contenir toute l'archive tar ainsi que les fichiers d'origine.
Avec GNU tar, utilisez l’option option--remove-files
.
J'avais une tâche - archiver des fichiers puis supprimer dans le système d'exploitation installé "tar" sans options GNU.
Utilisez "xargs"
Supposons que nous ayons un répertoire avec des fichiers.
Vous devez déplacer tous les fichiers de la semaine dans tar et les supprimer.
Je fais une archive (arc.tar) et ajouté des fichiers à elle. (Vous pouvez créer une nouvelle archive à chaque essai)
find ./ -mtime +7 | xargs -I % sh -c 'tar -rf arc.tar % ; rm -f %'
Pour les fichiers non GNU, vous pouvez utiliser "-u" pour traiter fichier par fichier dans une boucle.
tar -cf archive.tar afile
for myfile in dir/*.ext
do
tar -uf archive.tar $myfile && rm $myfile || echo "error tar -uf archive.tar $myfile"
done
Je ne sais pas si vous pouvez ajouter des fichiers aux archives bzip2 sans les extraire au préalable. Cependant, voici une solution qui m'est venue à l’esprit (vous donnant l’algorithme pseudoish):
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]
Vous devriez maintenant avoir un fichier tar contenant tous les fichiers individuellement bzip2: fichiers ed. La question est de savoir combien de temps supplémentaire bzip2 ajoute aux fichiers individuels. Cela doit être testé.