J'essaie d'archiver des fichiers avec tar et en ignorant les fichiers de plus de 100 Mo. Est-ce possible?
PS: Ne pas utiliser de goudron.
Oui, il y a probablement encore plus de façons de faire cela, mais vous êtes probablement mieux avec find
car c'est tellement ajustable.
find /path/to/dir -size -100M | xargs tar cvf archive.tar
ou
tar cvf archive.tar $(find /path/to/dir -size -100M)
S'il y a d'autres répertoires dans le dossier actuel que vous ne voulez pas archiver, utilisez:
find /path/to/dir -maxdepth 1 -size -100M | xargs tar cvf archive.tar
Selon les commentaires ci-dessous, les espaces peuvent générer des erreurs, mais lors de mes tests, ils semblaient toujours être ajoutés à l'archive lors de l'utilisation de la première méthode (un peu étrange en soi), mais si vous êtes inquiet, vous pouvez corriger la commande find. remplacer les espaces par des versions échappées.
Comme toujours, il existe un milliard de façons de le faire.
find /path/ -size -100M | sed 's/ /\\ /g' | xargs tar cvf archive.tar
find /path/ -size -100M -exec echo '"{}"' \; | xargs tar cvf archive.tar
Excluez simplement les gros fichiers comme ceci:
tar cf archive.tar/chemin/vers/archive --exclude-from <(recherche/chemin/vers/archive -size + 100M)