GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer tous les fichiers d'un dossier sauf un fichier spécifique sous Linux

Disons que vous avez plus de 100 fichiers dans un dossier. Vous voulez tous les supprimer sauf un ou quelques fichiers spécifiques. Comment feriez-vous ? Vous pouvez copier les fichiers que vous souhaitez conserver et les enregistrer dans un emplacement différent, puis supprimer le reste des fichiers ou le dossier entier. Mais attendez, je connais un moyen plus simple de le faire. Vous pouvez supprimer tous les fichiers d'un fichier plus ancien, à l'exception d'un fichier spécifique ou d'un certain type de fichiers en une seule fois avec une seule commande de ligne. Vous voulez savoir comment ? Continuez à lire.

Supprimer tous les fichiers d'un dossier sauf un fichier spécifique

Imaginons l'exemple suivant. Nous avons un dossier appelé 'test' qui contient 10 fichiers texte.

$ ls test/

Exemple de sortie :

file10.txt file2.txt file4.txt file6.txt file8.txt
file1.txt file3.txt file5.txt file7.txt file9.txt

Maintenant, je veux tout supprimer dans ce dossier sauf file10.txt .

Il peut y avoir plusieurs commandes pour cela. Mais ce sont les cinq commandes que je connais.

Tout d'abord, passez au test dossier :

$ cd test/

Et exécutez la commande suivante :

$ rm -f !(file10.txt)

Ou utilisez simplement :

$ rm !(file10.txt)

La commande ci-dessus supprimera tous les fichiers du dossier de test sauf file10.txt fichier.

Vous pouvez également utiliser la commande de recherche pour tout supprimer sauf un spécifique. La commande suivante supprimera tous les fichiers du dossier actuel (c'est-à-dire test dans notre cas) sauf file10.txt.

$ find . ! -name file10.txt -delete

Comme vous le voyez dans l'exemple ci-dessus, le dossier de test contient le même type de fichiers, c'est-à-dire des fichiers .txt. Que feriez-vous si le dossier contient différents types de fichiers tels que .mp3, .doc, .pdf, etc. ? Il est également facile de conserver un type particulier de fichiers dans un dossier et de supprimer tout le reste.

Supposons que notre dossier de test contienne trois fichiers .txt, trois fichiers .mp3, trois fichiers .doc et un fichier .pdf.

$ ls test/

Exemple de résultat :

total 0
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file10.pdf
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file1.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file2.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file3.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file4.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file5.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file6.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file7.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file8.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file9.doc

Comme vous dans la sortie ci-dessus, j'ai quatre types de fichiers différents (pdf, txt, mp3, doc) dans le dossier de test. J'aimerais conserver les fichiers qui ont .doc extension et supprimer tout le reste. Voici comment je peux procéder :

$ cd test/
$ rm !(*.doc)

Maintenant, listons le contenu du fichier en utilisant la commande :

$ ls

Exemple de résultat :

file7.doc  file8.doc  file9.doc

La commande ci-dessus supprime tout dans le dossier sauf les fichiers qui ont l'extension .doc .

De même, vous pouvez conserver deux ou plusieurs types de fichiers particuliers et supprimer tout le reste. Supposons, par exemple, que la commande suivante conserve les fichiers contenant .doc et .mp3 extensions.

$ rm !(*.doc|*.mp3)

Maintenant, vous verrez que les fichiers mp3 et doc ne sont pas supprimés.

$ ls

Exemple de résultat :

file4.mp3  file5.mp3  file6.mp3  file7.doc  file8.doc  file9.doc
Télécharger - Guide gratuit :"GNU/Linux Basic"

Ce ne sont que dix types de fichiers différents. Imaginez que vous avez des centaines de fichiers. Il serait plus difficile de trouver chaque type de fichier et de les supprimer manuellement. Cette astuce fera le travail en seulement une ou deux secondes.

Soyez très prudent lorsque vous utilisez ces commandes. Vérifiez le chemin du répertoire avant de supprimer des fichiers pour éviter la suppression accidentelle de fichiers importants.

Suggestion de lecture :

  • Éviter la suppression ou la modification accidentelle de fichiers et de dossiers sous Linux
  • Un moyen simple de protéger les fichiers contre la suppression accidentelle sous Linux

J'espère que cela t'aides. Si vous trouvez ce guide utile, partagez-le sur vos réseaux sociaux et professionnels et soutenez-nous.

Plus de bonnes choses à venir. Restez à l'écoute !

Santé !


Linux
  1. Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

  2. Déplacer tous les fichiers sauf un

  3. Comment puis-je trouver tous les fichiers contenant du texte spécifique sous Linux ?

  4. Comment diviser un fichier texte en plusieurs fichiers *.txt ?

  5. Comment puis-je voir du en Go au lieu de Mo sous Linux ?

Tout sur les fichiers tar et comment tar, décompresser des fichiers sous Linux à l'aide du terminal

Comment supprimer des fichiers avec une extension spécifique sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment joindre/fusionner plusieurs fichiers audio en un seul sous Linux

Comment compresser un fichier sous Linux