Comment supprimer le chemin lors de l'archivage avec TAR [fermé]
J'ai un fichier qui contient la liste des fichiers que je veux archiver avec tar.
Appelons-le mylist.txt
, Il contient:
/path1/path2/file1.txt
/path1/path2/file3.txt
...
/path1/path2/file10.txt
Ce que je veux faire est d'archiver ce fichier dans une archive, mais à l'exclusion /path1/path2/
.
Actuellement en faisant ceci:
tar -cvf allfiles.tar -T mylist.txt
Conserve le chemin après désarchivage.
J'ai essayé ceci mais ne fonctionnera pas aussi:
tar -cvf -C /path1/path2 allfiles.tar -T mylist.txt
, Il archive tous les fichiers dans /path1/path2
, même ceux qui ne sont pas dans ma liste.txt
Est-il un moyen de le faire?
1 réponses
Dans votre "Phase D'Extraction", vous pouvez utiliser l'indicateur strip-components
comme
tar xvf tarname.tar --strip-components=n
Qui supprimera les N premiers composants du nom de fichier. Bien que si vous avez des composants de chemin de fichier différents, cela ne fonctionnera pas pour tous les cas.
Si vous voulez le faire pendant l'archivage, une seule chose vient à l'esprit, et je vais partager
Entrée: liste des fichiers + chemins complets
1) pour chaque ligne, séparez le chemin du nom de fichier
2) Exécutez cd sur ce chemin et tar sur celui-ci nom du fichier
3) répéter pour chaque ligne