Hostwinds Tutoriels

Résultats de recherche pour:


Table des matières


Listing des fichiers
trouver
Localiser
ls
GNOME
Recherche par son nom
trouver
Localiser
GNOME
Recherche par taille
du
trouver
Localiser
GNOME
Trouver des fichiers vides
trouver
Localiser
GNOME
Effectuer des actions sur les correspondances de fichiers
trouver
Localiser
GNOME
Affiner les recherches avec la commande grep
Conclusion

Comment trouver des fichiers sur Ubuntu avec un terminal

Mots clés: Cloud Servers,  Dedicated Server 

Listing des fichiers
trouver
Localiser
ls
GNOME
Recherche par son nom
trouver
Localiser
GNOME
Recherche par taille
du
trouver
Localiser
GNOME
Trouver des fichiers vides
trouver
Localiser
GNOME
Effectuer des actions sur les correspondances de fichiers
trouver
Localiser
GNOME
Affiner les recherches avec la commande grep
Conclusion

Dans ce didacticiel, nous passerons en revue un certain nombre de méthodes pour trouver des fichiers et des répertoires (c'est-à-dire des dossiers) dans Ubuntu 20.04 LTS, tels que la recherche de tous les fichiers avec un .vieux Extension ou trouver tous les fichiers et répertoires supérieurs à 2 Go.Nous allons également expliquer comment exécuter une ou plusieurs commandes sur chaque fichier trouvé.

Notez que l'une des commandes que nous utiliserons est Localiser, qui ne vient pas nativement avec Ubuntu.La Localiser La commande est souvent plus rapide que trouver car il maintient une base de données de tous les fichiers qui est mis à jour toutes les 24 heures.La Localiser La commande peut être installée comme suit:

sudo apt install mlocate

Étant donné que tout dans les systèmes d'exploitation de type UNIX, y compris Ubuntu, est considéré comme un fichier, le terme "fichier" indique également "répertoire", sauf indication contraire.De plus, les exemples d'environnement de bureau sont basés sur GNOME.Pour apprendre à accéder à votre ordinateur Ubuntu distant à l'aide de Gnome, voir Utilisation de Windows Remote Desktop avec Ubuntu 20.04 TLS.

Avec cela, commençons.

Listing des fichiers

Pour répertorier tous les fichiers à partir du répertoire actuel, les commandes suivantes peuvent être utilisées:

trouver

Le sans faille trouver Commande répertoriez récursivement tous les fichiers du répertoire actuel:

find

Localiser

le Localiser La commande est similaire à trouver mais nécessite un modèle (le caractère générique dans ce cas):

locate *


La vitesse de Localiser vient à un prix, cependant.Les fichiers récemment modifiés ne peuvent pas être reflétés dans la base de données.Pour résoudre ce problème, vous pouvez mettre à jour la base de données avec sudo updatedb (qui pourrait prendre un certain temps) ou utiliser le -e option qui répertorie uniquement les fichiers existants à l'époque Localiser la commande est exécutée (essentiellement équivalent à trouver):

locate -e *

ls

En utilisant le récursif -R L'option permet à la norme ls commande pour produire des résultats similaires:

ls -Rlha

GNOME

Vous pouvez produire des résultats analogues en utilisant l'environnement de bureau GNOME:

Recherche par son nom

Dans les exemples suivants, nous rechercherons tous les fichiers avec le .vieux extension.

trouver

Parce que nous recherchons tous les fichiers, nous utilisons le sudo commande pour éviter les erreurs d'autorisation et démarrer la recherche à partir du répertoire racine (/):

sudo find / -iname *.old


Notez que le -mon nom option ignorer le cas alors que -Nom ne fait pas.

Localiser

Dans ce qui suit, le -je L'option ignore le cas:

sudo locate -i *.old


Fait intéressant, même avec le -e option, le Localiser La commande ne trouve pas le /run/blkid/blkid/tab.old fichier (alors que trouver Est-ce que).

GNOME

Sans le personnage de la joker (*), l'application Gnome Desktop Files fournit essentiellement la même information que le trouver commande:

Recherche par taille

Disons que nous aimerions trouver tous les fichiers supérieurs à 50 Mib.Pour cette tâche, nous pouvons ajouter le du commande à notre liste de suspects probables:

du

le du La commande a été conçue spécifiquement pour cette tâche:

sudo du / -ha --threshold=50M

le -H L'option fournit des tailles de fichiers standard (humaines) et le -un L'option comprend des fichiers ainsi que des répertoires:


Pour supprimer (les quatre) messages d'erreur, vous pouvez utiliser le 2>&- dispute.Vous pouvez également trier par taille de fichier:

sudo du / -ha --threshold=50M 2>&- | sort -h


La dernière ligne montre que le disque contient 2,8 gib de données au total.

trouver

Ce qui suit trouve tous les fichiers (hors répertoires) supérieurs à 50 MIB:

sudo find / -size +50M


Pour afficher la taille de chaque fichier en octets, vous pouvez utiliser le -LS option (et 2>&- Pour supprimer les messages d'erreur):

sudo find / -size +50M -ls 2>&-

La 7e colonne fournit la taille de chaque fichier, en octets.Pour afficher uniquement le chemin du fichier, le type et la taille, vous pouvez utiliser le -printf Option, comme indiqué:

sudo find / -size +50M -printf "%p %y %s bytes\n" 2>&- | column -t


le % p renvoie le nom de fichier, % y le type de fichier, % s la taille en octets, et \ n génère un caractère Newline (pour plus de détails, exécuter l'homme trouve).

le colonne -t La commande crée des colonnes basées sur des caractères d'espace blanc.Notez que 140737477885952 octets sont un peu moins de 128 PIB, ce qui est clairement incorrect.Une interprétation plus précise suit:

sudo find / -size +50M -printf "%p %y %k KiB\n" 2>&- | column -t


Au dessus, % k fournit la taille du fichier en kib (par opposition à % s octets).

Localiser

Parce que le Localiser La base de données de la commande ne contient pas d'informations sur la taille des fichiers, vous ne pouvez pas répertorier des fichiers supérieurs à 50 MIB uniquement avec Localiser.

GNOME

L'application de fichiers de bureau de Gnome fournit typique GUI résultats:

Comme on peut le voir ci-dessus, le tri par la colonne de taille n'est pas entièrement utile en ce qui concerne la recherche de tous les fichiers de plus de 50 MIB.La du ou trouver Les commandes conviennent plus à une telle tâche.

Trouver des fichiers vides

Un certain nombre des commandes mentionnées ci-dessus ont des options spécifiquement pour trouver des fichiers vides.Nous allons les examiner ensuite.

trouver

Pour le trouver Commande, cette tâche est simple:

sudo find /tmp -empty -type f,d

Cette commande trouve tous les fichiers et répertoires vides (c'est-à-dire, -Type F, D) dans le / tmp dossier, comme indiqué:


Mais lequel est lequel?Comme ci-dessus, nous pouvons utiliser -printf et colonne comme suit:

sudo find /tmp -empty -type f,d -printf "%p %y %s bytes\n" | column -t


Notez que chaque répertoire vide nécessite 4096 octets (4 kib) d'exister dans le système de fichiers Ubuntu.Voici un exemple de répertoire vide unique et un seul fichier vide:

Localiser

Encore une fois, parce que le Localiser La base de données ne contient pas d'informations sur la taille des fichiers, il n'y a aucun moyen de trouver directement des fichiers / répertoires vides en utilisant uniquement le Localiser commander.

GNOME

L'application de fichiers de bureau de GNOME fournit des résultats relativement non entravés:

Il faudrait faire beaucoup de clics pour identifier tous les fichiers vides à l'aide d'un environnement de bureau Gnome.

Effectuer des actions sur les correspondances de fichiers

Maintenant que nous savons comment trouver des fichiers, nous voulons peut-être effectuer des actions sur eux;comme supprimer tout *.vieux des dossiers.

trouver

le trouver commandement -exec L'option exécute la commande fournie une fois pour chaque fichier correspondant.Par exemple:

sudo find / -iname "*.old" -exec echo {} \;

En un mot, cela exécute le écho commande sur chacun .vieux fichier trouvé. Ici le {} La syntaxe représente chaque fichier correspondant.Ainsi, si vmlinux.old est un fichier correspondant, puis la commande echo vmlinux.old est exécuté.Le point-virgule est utilisé pour indiquer la fin de la chaîne de commande suivant le -exec option.Parce que le point-virgule a une signification particulière, il doit être échappé avec les caractères de barre arrière (\), comme suit:


Pour supprimer tout *.vieux fichiers du / Home / Karlito répertoire (ou ~ répertoire), vous pouvez exécuter la commande suivante:

sudo find . -iname "*.old" -exec rm -f {} \;

Nous pouvons voir que tous les fichiers dans le ~ Le répertoire a été supprimé:

Localiser

le Localiser La commande n'a pas de -exec option.Cependant, nous pouvons imiter cette fonctionnalité en utilisant le xargs commande:

sudo locate -i "*.old" | xargs -0 echo


le -0 L'option permet xargs Pour gérer correctement les caractères de nom de fichiers atypiques.

Pour supprimer tout *.vieux fichiers du / Home / Karlito Répertoire, vous pouvez courir:

sudo locate -i "/home/karlito/*.old" | xargs rm


De même, pour supprimer tout .vieux fichiers répertoriés dans le Localiser Base de données de la commande (généralement tous *.vieux fichiers sur disque), vous pouvez exécuter:

sudo locate -i "*.old" | xargs rm

GNOME

Pour effectuer la même action à l'aide de l'application Files, recherchez d'abord tous les fichiers avec a.vieux extension:

Ensuite, sélectionnez tous les fichiers correspondants en appuyant sur Ctrl + A. Ensuite, appuyez sur la touche de suppression et sélectionnez le Effacer bouton:

Nous pouvons confirmer la suppression à l'invite de commande comme suit:


Parce que le xargs La commande est rapide, flexible et peut être utilisée avec de nombreuses autres commandes, il est généralement logique de l'utiliser pour la plupart des scénarios.Par exemple, le suivant copie tous les fichiers contenant "Sauvegarde" dans un répertoire appelé "Sauvegardes" dans le dossier domestique de l'utilisateur:

sudo find / -type f -iname "*backup*" -print0 | xargs -0 -I {} sh -c 'stat -c "%n %s bytes" {}; cp {} ~/backups'

Une explication détaillée de chaque commande et option suit:

  • sudo Permet le trouver commande de rechercher sans rencontrer des erreurs refusées.
  • trouver Une commande qui recherche des fichiers (exécuter l'homme trouve pour plus de détails).
  • / Commence la recherche à partir du répertoire racine.
  • -Type F Recherche de fichiers (et non de répertoires).
  • -iname "* Backup *" Tout en ignorant le cas, instruit le trouver Commande pour trouver tous les fichiers contenant "Sauvegarde" quelque part dans le nom de fichier.Notez l'utilisation des deux (*) Personnages génériques.
  • -print0 Formats la sortie du trouver commande de telle sorte qu'elle puisse être consommée par d'autres commandes, y compris xarg.En particulier, -print0 Permet des noms de fichiers qui contiennent des lignes de nouvelles ou d'autres types d'espace blanc à interpréter correctement par des programmes qui peuvent traiter ces entrées.Notez que le -print0 L'option correspond au -0 option du xargs commander.
  • xargs Convertit son entrée standard en arguments pour d'autres commandes, comme le stat et CP commander.
  • -0 Prépare le xargs Commande pour recevoir une entrée qui peut contenir de l'espace blanc, des marques de devis ou des barres objets réalisateurs.
  • -JE L'option Capital "I" permet à l'entrée de xargs à utiliser dans plus d'un endroit, comme via {} jeton.
  • sh -c Cela invoque un interprète de ligne de commande distincte (shell) et exécute les commandes qui lui sont transmises.Dans ce cas, 'stat -c "% n% s octets" {};cp {} ~ / sauvegarde '.Ce deuxième shell permet xargs Pour exécuter plusieurs commandes en utilisant le {} jeton.
  • stat -c "% n% s octets" {} Affiche le nom % n et la taille % s du fichier contenu dans le {} Token (en octets).
  • ; Le point-virgule permet d'exécuter deux commandes ou plus sur la même ligne.
  • cp {} ~ / sauvegardes Copie le don {} fichier à la ~ / sauvegardes annuaire.

La réalisation de tout cela se traduit par une sortie similaire à ce qui suit:

Dans ce qui précède, nous pouvons voir tous les fichiers qui ont été théoriquement copiés pour ~ / sauvegardes.C'est théorique en ce que tous les fichiers n'ont pas été réellement copiés:

C'est un point important - il n'y avait aucun problème en ce qui concerne l'affichage stat informations connexes mais il y avait des problèmes pour le CP commande (qui ne sont pas signalés).

Affiner les recherches avec la commande grep

Ensuite, nous rechercherons le contenu des fichiers correspondants afin de trouver un ou plusieurs mots clés.Pour commencer, nous examinerons tout *.Journal fichiers pour les occurrences de Attention.Pour ce faire, nous utilisons l'omniprésent grep commande:

sudo find / -iname '*.log' -type f -print0 | xargs -0 grep warning

Exécuter les commandes avant le tuyau ( | ) L'opérateur renvoie la liste attendue de *.Journal des dossiers.Cependant, l'exécution de l'ensemble des rendements de la ligne de commande par fichier d'erreur des erreurs:


C'est parce que le grep La commande nécessite également sudo élévation.Ainsi, la ligne de commande suivante produit les résultats souhaités (les deux -mon nom et -je Ignorer le cas):

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo -i grep warning

Pour trouver tout *.Journal Fichiers contenant Attention, critique, et / ou Erreur, nous pouvons utiliser la logique ou ( | ) L'opérateur, qui doit être échappé pour qu'il ne soit pas confondu avec l'opérateur de tuyaux standard:

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo grep -l -i 'warning\|critical\|error'

L'option "L" minuscule -l Affiche la liste des fichiers correspondants et non le contenu associé:

Conclusion

Ce tutoriel a comparé et contrasté plusieurs façons de trouver des fichiers dans Ubuntu 22.04 LTS.Il a également fourni des techniques pour exécuter des commandes sur les fichiers trouvés.Les systèmes d'exploitation de type UNIX, y compris Ubuntu, offrent un environnement de ligne de commande extrêmement riche pour vous aider à gérer votre ordinateur / serveur Ubuntu.

Écrit par Karlito Bonnevie  /  juin 20, 2022