Hostwinds Tutoriels
Résultats de recherche pour:
Table des matières
Mots clés: Cloud Servers, Dedicated Server
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.
Pour répertorier tous les fichiers à partir du répertoire actuel, les commandes suivantes peuvent être utilisées:
Le sans faille trouver Commande répertoriez récursivement tous les fichiers du répertoire actuel:
find
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 *
En utilisant le récursif -R L'option permet à la norme ls commande pour produire des résultats similaires:
ls -Rlha
Vous pouvez produire des résultats analogues en utilisant l'environnement de bureau GNOME:
Dans les exemples suivants, nous rechercherons tous les fichiers avec le .vieux extension.
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.
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).
Sans le personnage de la joker (*), l'application Gnome Desktop Files fournit essentiellement la même information que le trouver commande:
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:
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.
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).
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.
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.
Un certain nombre des commandes mentionnées ci-dessus ont des options spécifiquement pour trouver des fichiers vides.Nous allons les examiner ensuite.
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:
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.
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.
Maintenant que nous savons comment trouver des fichiers, nous voulons peut-être effectuer des actions sur eux;comme supprimer tout *.vieux des dossiers.
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é:
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
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:
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).
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é:
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