Comment trouver et supprimer des fichiers dans Linux

Comment trouver et supprimer des fichiers dans Linux
Ce tutoriel explique comment combiner la commande Linux Find avec d'autres pour rechercher et supprimer les fichiers avec une seule exécution de commande.

Après avoir lu ce tutoriel, vous saurez comment simplifier la tâche de supprimer les fichiers dans Linux en utilisant différentes techniques. Ce tutoriel est optimisé pour les utilisateurs nouveaux et expérimentés, passant directement au point pratique et expliquant tous les aspects. Je vous encourage à pratiquer tous les exemples donnés afin d'incorporer ces connaissances. Soyez juste prudent avec le contenu que vous supprimez.

Cet article comprend les captures d'écran de chaque étape, ce qui permet à tous les utilisateurs de Linux de les appliquer facilement.

Trouver et supprimer des fichiers dans Linux

Cette section explique les différentes techniques pour trouver les fichiers et les supprimer à la volée avec une seule commande ou avec une combinaison de commandes.

Pour commencer, voyons ce qu'il y a dans le répertoire domestique en utilisant le LS (Liste) Commande.

LS

Comme vous pouvez le voir dans la figure précédente, il y a plusieurs fichiers et répertoires. Parmi eux, nous pouvons voir le 1.SMS, 2.SMS et 3.SMS.

Nous pouvons utiliser la commande find suivie du type de fichier, du nom du fichier et du -supprimer option.

Mais dans l'exemple suivant, nous ne supprimerons pas de fichier spécifique mais tous les fichiers avec le «.Extension txt ”.

trouver . -Tapez f -name "*.txt "-delete

Où:

  • trouver: La commande Find est évidemment utilisée pour rechercher les fichiers.
  • . (Point): Le point après la commande find spécifie que l'opération doit être effectuée dans le répertoire actuel. Notre cas est dans le répertoire de la maison, donc ce point est égal à / Home / User.
  • -Type F: Cette option spécifie les fichiers que nous voulons trouver. Dans le cas où vous souhaitez rechercher les répertoires, remplacez le F par un D.
  • -nom: C'est l'option pour spécifier la cible de fichier / répertoire. Cette option doit être tapée avant le nom de fichier / répertoire pour le définir.
  • "*.SMS": Dans ce cas particulier, nous recherchons tous les «.TXT "Fichiers que nous spécifions en tapant" *.SMS".
  • -supprimer: Cette option indique à la commande find pour supprimer les fichiers trouvés.

Comme vous pouvez le voir dans la capture d'écran précédente, après avoir exécuté le LS Commande à nouveau, les fichiers txt n'apparaissent pas. Ils ont été supprimés par la commande précédemment exécutée.

Bien sûr, vous pouvez trouver et supprimer les fichiers spécifiques comme indiqué dans la figure suivante où fichier3 est trouvé et supprimé.

trouver . -Tapez F -NAME FILE3 -Delete

Comme expliqué dans la liste des commandes et des options précédentes, si vous souhaitez supprimer un répertoire plutôt qu'un fichier, vous devez remplacer le F avec un d après le -taper Option comme indiqué dans l'image suivante:

trouver . -Type D -name Dir1 -delete

Supposons que vous souhaitez supprimer de nombreux fichiers dont la première partie de leurs noms est la même. Dans la capture d'écran suivante, vous pouvez voir le fichier1, fichier2 et fichier3.

Si vous souhaitez supprimer tous les fichiers «FileX», il vous suffit de remplacer la partie des noms de fichiers sans coïncidence avec le wildcard (*) comme indiqué dans l'exemple suivant:

trouver . -Tapez f -Name "Fichier *" -Delete

Tous les exemples précédents expliquaient comment supprimer les fichiers à l'aide du -supprimer option. Cette section explique comment obtenir le même résultat en utilisant le -exécutif commande.

La première partie de la commande suivante a déjà été expliqué précédemment. La commande Incorporated -exec est utilisée pour appliquer une action basée sur le résultat de la commande précédente.

trouver . -Nom "quelque chose.log "-exec rm -rf \;

Où:

  • -exec: Demande d'exécuter une commande postérieure après l'exécution de la première commande (trouver).
  • rm -rf: Cette commande est utilisée pour forcer la suppression des fichiers et des répertoires correspondant aux noms donnés.
  • «»: C'est le trouver Commande Paceholder, ce qui signifie qu'il prend le fichier ou les noms de répertoire donné à la commande find pour exécuter la commande donnée (après -exécutif) sur eux. Dans l'exemple précédent, RM -RF est appliqué à l'espace réservé qui représente le «enregistrer"
  • «\;»: La barre oblique du dos et le point-virgule ferme ou termine le -exécutif

Maintenant, voyons un nouveau scénario utilisant à nouveau la commande LS. Comme vous pouvez le voir, il y en a différent «.Fichiers txt ».

Dans ce cas, nous remplacerons le -supprimer option avec le -Exec RM Encore une fois pour supprimer tous les «.Txt ”fichiers comme nous l'avons fait dans le deuxième exemple de ce document mais en utilisant une technique différente.

Vous pouvez voir la commande dans la troisième ligne de la figure suivante. La commande LS précédente affiche les fichiers existants avant l'exécution trouver, Et le deuxième LS montre le résultat avec tous les «.Fichiers txt »supprimés.

trouver . -Tapez f -name "*.txt "-exec rm -f \;

Maintenant, créons un nouveau scénario que vous pouvez voir dans l'exemple suivant. Ce scénario en comprend plusieurs «.txt »et«.C Fichiers ".

Supposons que vous souhaitez supprimer les deux .SMS et .c fichiers à la fois en utilisant l'option -delete au lieu de l'option -exec. Comme vous pouvez le voir dans l'image suivante, les fichiers de noms sont entre le \ ( et \). Avant le deuxième nom de fichier, nous avons le -o option suivie du -nom et le deuxième nom (ou condition dans ce cas, car nous supprimons tous les «.Fichiers txt ”). Vous pouvez ajouter le -O -name plusieurs fois comme vous en avez besoin, mais rappelez-vous que le premier -nom n'est pas précédé par le -o option.

trouver . \( -nom "*.c "-o -name" *.txt "\) -delete

Comme vous pouvez le voir, les deux .SMS et .c Les fichiers ont été supprimés avec succès.

Maintenant, combinons la commande Find avec la commande xargs (expliquée à la fin de ce tutoriel).

Dans l'exemple suivant, nous supprimons tous les «.Fichiers txt ”à l'aide de xargs, où -je est l'espace réservé et entre% nous exécutons la commande.

Comme vous pouvez le voir, après la deuxième exécution LS, tout .c et .SMS Les fichiers ont été supprimés.

trouver *.TXT -TYPE F | xarg -i% rm "%"

La syntaxe pour supprimer de nombreux fichiers est plus facile avec xargs. Dans la commande suivante, les deux .c et .SMS Les fichiers sont supprimés.

trouver *.SMS *.C -Type F | xarg -i% rm "%"

Enfin, supposons que vous souhaitez supprimer les fichiers par date et non par nom ou extension. Dans ce cas, la commande find peut identifier le mtime (dates de fichiers de création ou de modification) des fichiers et répertoires.

Dans l'image suivante, vous pouvez voir le dir2 Répertoire qui contient 4 fichiers: fichier1, fichier2, fichier3 et fichier4. Tous les fichiers dans le dir2 ont été créés au cours des dernières 24 heures.

L'identification des fichiers est possible en utilisant le -m du temps option suivie de l'intervalle de temps des fichiers. Dans ce cas, le -1 L'option indique 1 jour, 24 heures. Le -1 signifie les fichiers créés ou modifiés le dernier jour, tandis que +1 signifie les fichiers créés ou modifiés il y a plus d'un jour.

Dans l'exemple suivant, nous utilisons la commande find avec l'option -mtime pour supprimer les fichiers créés ou modifiés le dernier jour.

Trouver Dir2-Type F -mtime -1 -Delete

xargs vs -exec

Le xargs La commande est presque toujours implémentée avec des tuyaux (mais pas nécessairement à le faire) pour utiliser la première commande comme argument. Contrairement au tuyau, il permet d'utiliser la première commande comme argument et pas seulement comme une sortie ou une commande prédécesseur précédente.

L'exemple suivant de cette section répertorie les fichiers et répertoires à l'aide du LS (Liste) Commande et déplace les fichiers répertoriés vers un autre répertoire avec mv et xargs commandes. Ce n'est pas la méthode appropriée pour déplacer les fichiers, mais il est utile comme exemple pour montrer comment le xargs Commande fonctionne.

Tout d'abord, jetez un coup d'œil à mon linuxhintdir annuaire. Comme vous pouvez le voir, nous avons 3 fichiers: fichier1, fichier2 et fichier3.

ls dir1 dir2

Maintenant, déplacez tous les fichiers à l'intérieur dir1 pour dir2 en utilisant le mv commande.

ls ~ / dir1 / * | xargs mv -t ~ / dir2

Comme vous pouvez le voir, le résultat ls ~ / dir1 / * a été passé par xargs après le mv commande.

Le -exécutif La commande est similaire à xargs. Il peut exécuter des commandes en fonction de la sortie de la première commande. Contrairement aux xargs, -exécutif exécute la commande chaque fois qu'un fichier correspond à la condition. Si nous utilisons la commande -exec pour supprimer les fichiers, il les supprimera par fichier par fichier. Tandis que xargs exécute la commande à la fois pour tous les fichiers correspondants. Cela fait xargs Un peu plus rapide que -exec. Par conséquent, si vous traitez avec de nombreux fichiers, les Xargs seraient pratiques -exécutif.

Conclusion

Linux a de nombreuses méthodes pour atteindre la même tâche. Trouver et supprimer les fichiers avec une seule commande est une connaissance que tout utilisateur de Linux devrait avoir indépendamment sur son expérience. Ce tutoriel se concentre sur la recherche et la suppression des fichiers, mais Xargs et -exec peuvent être utilisés avec de nombreuses commandes Linux. Il est important de mentionner que certaines fonctions sont disponibles uniquement dans le trouver version. La plupart des conseils expliqués sont utiles pour presque toutes les distributions Linux.

Merci d'avoir lu ce tutoriel expliquant comment trouver et supprimer les fichiers dans Linux. Continuez à nous suivre pour des conseils plus professionnels.