Je suis en train de tar
une collection de fichiers dans un répertoire appelé « my_directory » et retirer les originaux en utilisant la commande:
tar -cvf files.tar my_directory --remove-files
Cependant, il supprime uniquement les fichiers individuels à l'intérieur du répertoire et non le répertoire lui-même (ce que j'ai spécifié dans la commande). Qu'est-ce que j'oublie ici?
MODIFIER:
Oui, je suppose que l'option 'remove-files' est assez littérale. Bien que moi aussi j'ai trouvé la page de manuel peu claire sur ce point. (Sous Linux, j'ai tendance à ne pas vraiment faire de distinction entre les répertoires et les fichiers, et j'oublie parfois qu'ils ne sont pas la même chose). Il semble que le consensus est qu'il ne supprime pas les répertoires.
Cependant, mon principal point de départ pour poser cette question découle de la gestion par tar des chemins absolus. Étant donné que vous devez spécifier un chemin d'accès relatif à un ou plusieurs fichiers à compresser, vous devez par conséquent modifier le répertoire parent pour le tarer correctement. Comme je le vois, utiliser n'importe quel type de commande «rm» de suivi est potentiellement dangereux dans cette situation. J'espérais donc simplifier les choses en faisant tar lui-même faire le retrait.
Par exemple, imaginez un script de sauvegarde dans lequel le répertoire à sauvegarder (c'est-à-dire. Tar) est inclus en tant que variable shell. Si cette valeur de variable shell a été mal entrée, il est possible que le résultat soit des fichiers supprimés du répertoire dans lequel vous vous trouviez en dernier.