Parfois tu as besoin supprimer presque tous les fichiers d'un répertoire, mais vous souhaitez en conserver un ou plusieurs. Lorsqu'il y en a un grand nombre, aller un par un est une tâche fastidieuse. Ce n'est pas la meilleure option, il existe des moyens de rendre le travail sous Linux beaucoup plus facile et vous pouvez éliminer tous ceux dont vous avez besoin à la fois.
Par exemple, vous souhaiterez peut-être supprimer uniquement ceux qui commencent par un certain nom, ou ceux qui ont une extension spécifique, etc. Tout ce qui est possibleEn fait, à d'autres occasions, j'ai déjà montré des tutoriels similaires dans LxA. Ici, vous pouvez suivre le tutoriel étape par étape et de manière simple pour pouvoir supprimer tous les fichiers que vous souhaitez, sauf ce que vous souhaitez enregistrer.
Et la meilleure chose est que vous n'aurez pas besoin d'installer de programme, cela peut être fait facilement avec des commandes comme rm et find. Autrement dit, des programmes déjà préinstallés sur n'importe quelle distribution Linux. Et bien sûr, la méthode sera basée sur la recherche de modèles et l'utilisation de ces correspondances pour supprimer uniquement ce que vous voulez.
Eh bien, pour y éliminer plusieurs alternatives, qui sont…
Supprimer des fichiers d'un répertoire avec rm
Eh bien, pour utiliser le commande rm Pour éliminer ce que vous ressentez, vous devez avant tout savoir comment identifier les modèles:
- * (liste des motifs) - correspond à zéro ou plusieurs occurrences des modèles spécifiés
- ? (liste des motifs) - correspond à zéro ou à une occurrence des modèles spécifiés
- + (liste de modèles) - correspond à une ou plusieurs occurrences des modèles spécifiés
- @ (liste de modèles) - correspond à l'un des modèles spécifiés
- ! (liste de motifs) - correspond à tout sauf à l'un des modèles donnés
Pour activer extglob Pour les utiliser, vous devez d'abord exécuter la commande suivante:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Vous pouvez maintenant utiliser rm pour supprimer tout ce que vous voulez. Par exemple, supprimer tous les fichiers d'un répertoire à l'exception de ceux qui correspondent au nom «Lxa»:
rm -v !("lxa")
Vous pouvez également spécifier deux noms ou plus que vous ne souhaitez pas supprimer. Par exemple, pour éviter de supprimer "lxa" et "desdelinux":
rm -v !("lxa"|"desdelinux")
Vous pouvez supprimer tous les fichiers, moins ceux avec extension .mp3. Par exemple:
rm -v !(*.mp3)
À la fin, vous pouvez revenir à désactiver extglob:
shopt -u extglob
Supprimer des fichiers d'un répertoire avec find
Une autre alternative à rm est utilisez find pour supprimer tout ce que vous voulez. Vous pouvez utiliser un tube et des xargs avec rm, ou utiliser l'option -delete pour rechercher. Autrement dit, la syntaxe générique serait:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Par exemple, imaginez que vous voulez supprimer tous les fichiers d'un répertoire à l'exception de ceux avec l'extension .jpg, vous pouvez utiliser l'une de ces deux commandes, car elles donnent toutes les deux le même résultat:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Au lieu de cela, si tu voulais ajouter un motif supplémentaire, vous pourriez aussi. Par exemple, supposons que vous ne souhaitiez pas supprimer le .pdf ou le .odt d'un répertoire:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Bien sûr, vous pouvez faire la même chose avec | et xargs comme dans l'exemple précédent. Au fait, nous avons utilisé -ne pas nier, mais vous pouvez supprimer cela pour le rendre positif, c'est-à-dire pour supprimer les modèles correspondants et ne pas les exclure.
Supprimer des fichiers d'un répertoire à l'aide de la variable GLOBIGNORE
Enfin, il y a Une autre alternative pour trouver et rm, et il utilise une variable d'environnement pour pointer vers les fichiers que vous souhaitez supprimer ou exclure. Par exemple, imaginez que vous souhaitez supprimer tous les fichiers dans un répertoire appelé Téléchargements, en enregistrant les fichiers .pdf, .mp3 et .mp4. Dans ce cas, vous pouvez effectuer les opérations suivantes:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE