Commandes de base Linux - Ep47 - archiver et compresser
Table des matières:
- Syntaxe de la commande Linux
find
- Rechercher des fichiers par nom
- Rechercher des fichiers par extension
- Rechercher des fichiers par type
- Rechercher des fichiers par taille
- Rechercher des fichiers par date de modification
- Rechercher des fichiers par autorisations
- Rechercher des fichiers par propriétaire
- Rechercher et supprimer des fichiers
- Conclusion
La commande
find
est l'un des outils les plus puissants de l'arsenal des administrateurs système Linux. Il recherche les fichiers et les répertoires dans une hiérarchie de répertoires en fonction d'une expression donnée par l'utilisateur et peut effectuer une action spécifiée par l'utilisateur sur chaque fichier correspondant.
Vous pouvez utiliser la commande
find
pour rechercher des fichiers et des répertoires en fonction de leurs autorisations, type, date, propriété, taille, etc. Il peut également être utilisé en combinaison avec d'autres outils tels que
grep
ou
sed
.
Syntaxe de la commande Linux
find
La syntaxe générale de la commande
find
est la suivante:
find
- L'attribut
options
contrôle le traitement des liens symboliques, des options de débogage et de la méthode d'optimisation.L'attributpath…
définit le ou les répertoires de départ dans lesquels find recherchera les fichiers.L'attribut d'expression
est composé d'options, de modèles de recherche et de actions séparées par des opérateurs.
Pour rechercher des fichiers dans un répertoire, l'utilisateur qui appelle la commande
find
doit avoir des autorisations de lecture sur ce répertoire.
Jetons un œil à l'exemple suivant:
find -L /var/www -name "*.js"
- L'option
-L
(options) indique à la commandefind
de suivre les liens symboliques. Le/var/www
(chemin…) spécifie le répertoire qui sera recherché. (Expression)-name "*.js
indique àfind
de rechercher les fichiers se terminant par.js
(fichiers JavaScript).
Rechercher des fichiers par nom
La recherche de fichiers par nom est probablement l'utilisation la plus courante de la commande
find
. Pour rechercher un fichier par son nom, l'option
-name
suivi le nom du fichier que vous recherchez.
Par exemple, pour rechercher un fichier nommé
document.pdf
dans le répertoire
/home/linuxize
, vous utiliseriez la commande suivante:
find /home/linuxize -type f -name document.pdf
Pour exécuter une recherche ne
-iname
casse, modifiez l'option
-name
avec
-iname
:
find /home/linuxize -type f -iname document.pdf
La commande ci-dessus correspondra à "Document.pdf", "DOCUMENT.pdf"..etc.
Rechercher des fichiers par extension
La recherche de fichiers par extension est identique à la recherche de fichiers par nom. Par exemple, pour trouver tous les fichiers se terminant par
.log.gz
dans le
.log.gz
/var/log/nginx
, vous pouvez utiliser:
find /var/log/nginx -type f -name '*.log.gz'
Il est important de mentionner que lorsque vous utilisez le caractère générique, vous devez soit citer le modèle, soit échapper le symbole astérisque
*
avec une barre oblique inverse
\
afin qu'il ne soit pas interprété par le shell.
Pour trouver tous les fichiers qui ne correspondent pas à l'expression
*.log.gz
vous pouvez utiliser l'option
-not
. Par exemple, pour rechercher tous les fichiers qui ne se terminent pas par
*.log.gz
vous devez utiliser:
find /var/log/nginx -type f -not -name '*.log.gz'
Rechercher des fichiers par type
Parfois, vous devrez peut-être rechercher des types de fichiers spécifiques tels que des fichiers normaux, des répertoires ou des liens symboliques. Sous Linux, tout est un fichier.
Pour rechercher des fichiers en fonction de leur type, utilisez l'option
-type
et l'un des descripteurs suivants pour spécifier le type de fichier:
-
f
: un fichier normald
: répertoirel
: lien symboliquec
: périphériques de caractèresb
: périphériques de blocp
: canal nommé (FIFO)s
: socket
Par exemple, pour trouver tous les répertoires du répertoire de travail actuel, vous utiliseriez:
find. -type d
L'exemple courant serait de modifier récursivement les autorisations de fichier de site Web en
644
et les autorisations de répertoire en
755
à l'aide de la commande
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Rechercher des fichiers par taille
Pour rechercher des fichiers en fonction de la taille du fichier, transmettez le paramètre
-size
avec les critères de taille. Vous pouvez utiliser les suffixes suivants pour spécifier la taille du fichier:
-
b
: blocs de 512 octets (par défaut)c
: octetsw
: mots de deux octetsk
: kilo-octetsM
: mégaoctetsG
: gigaoctets
La commande suivante trouvera tous les fichiers d'exactement
1024
octets dans le
/tmp
:
find /tmp -type f -size 1024c
La commande
find
vous permet également de rechercher des fichiers dont la taille est supérieure ou inférieure à une taille spécifiée.
Dans l'exemple suivant, nous recherchons tous les fichiers de moins de
1MB
dans le répertoire de travail actuel. Remarquez le signe moins
-
avant la valeur de taille:
find. -type f -size -1M
find. -type f -size +1M
Vous pouvez même rechercher des fichiers dans une plage de tailles. La commande suivante trouvera tous les fichiers entre
1
et
2MB
:
find. -type f -size +1M -size 21M
Rechercher des fichiers par date de modification
La commande
find
peut également rechercher des fichiers en fonction de leur dernière modification, accès ou heure de modification.
Comme pour la recherche par taille, utilisez les symboles plus et moins pour «supérieur à» ou «inférieur à».
Disons qu'il y a quelques jours, vous avez modifié l'un des fichiers de configuration de pigeonnier, mais vous avez oublié lequel. Vous pouvez facilement filtrer tous les fichiers dans le répertoire
/etc/dovecot/conf.d
qui se termine par
.conf
et qui ont été modifiés au cours des cinq derniers jours avec:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Voici un autre exemple de filtrage des fichiers en fonction de la date de modification à l'aide de l'option
-daystart
. La commande ci-dessous répertorie tous les fichiers du répertoire
/home
qui ont été modifiés il y a
30
jours ou plus:
find /home -mtime +30 -daystart
Rechercher des fichiers par autorisations
L'option
-perm
vous permet de rechercher des fichiers en fonction des autorisations de fichier.
Par exemple, pour trouver tous les fichiers avec des autorisations d'exactement
775
dans le répertoire
/var/www/html
, vous utiliseriez:
find /var/www/html -perm 644
Vous pouvez préfixer le mode numérique avec moins
-
ou barre oblique
/
.
Lorsque slash
/
est utilisé comme préfixe, alors au moins une catégorie (utilisateur, groupe ou autres) doit avoir au moins les bits respectifs définis pour qu'un fichier corresponde.
Considérez l'exemple de commande suivant:
find. -perm /444
La commande ci-dessus fera correspondre tous les fichiers avec des autorisations de lecture définies pour l'utilisateur, le groupe ou d'autres.
Si moins
-
est utilisé comme préfixe, le fichier doit correspondre au moins aux bits spécifiés. La commande suivante recherchera les fichiers autorisés à lire et à écrire pour le propriétaire et le groupe et lisibles par les autres utilisateurs:
Rechercher des fichiers par propriétaire
Pour rechercher des fichiers appartenant à un utilisateur ou un groupe particulier, utilisez les options
-user
et
-user
.
Par exemple, pour rechercher tous les fichiers et répertoires appartenant à l'utilisateur
linuxize
, vous devez exécuter:
find / -user linuxize
Voici un exemple concret. Supposons que vous souhaitiez trouver tous les fichiers appartenant à l'utilisateur
www-data
et changer la propriété des fichiers correspondants de
www-data
à
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Rechercher et supprimer des fichiers
Pour supprimer tous les fichiers correspondants, ajoutez l'option
-delete
à la fin de l'expression de correspondance.
Assurez-vous que vous utilisez cette option uniquement lorsque vous êtes sûr que le résultat correspond aux fichiers que vous souhaitez supprimer. C'est toujours une bonne idée d'imprimer les fichiers correspondants avant d'utiliser l'option
-delete
.
Par exemple, pour supprimer tous les fichiers se terminant par
.temp
du
/var/log/
vous utiliseriez:
find /var/log/ -name `*.temp` -delete
Utilisez l'option
-delete
avec une extrême prudence. La ligne de commande find est évaluée comme une expression et si vous ajoutez d'
-delete
option
-delete
, la commande supprimera tout sous les points de départ que vous avez spécifiés.
En ce qui concerne les répertoires,
find
ne peut supprimer que les répertoires vides identiques à
rmdir
.
Conclusion
Nous vous avons montré comment utiliser la commande
find
avec différentes options et critères.
Cet article devrait vous donner une compréhension fondamentale de la façon de localiser des fichiers sur vos systèmes Linux. Vous pouvez également visiter la page de manuel
find
et découvrir toutes les autres options puissantes de la commande
find
.
Microsoft profite en vendant des publicités en ligne sur son moteur de recherche à des gangs criminels gérant des sites Web pharmaceutiques offrant des médicaments Selon une nouvelle étude, Microsoft vend des publicités en ligne sur son moteur de recherche à des gangs criminels qui gèrent des sites Web pharmaceutiques offrant des médicaments à des personnes sans ordonnance adéquate.
Environ 89,7% des Selon le rapport, les pharmacies qui paient des publicités sur le dernier moteur de recherche de la société, Bing.com, sont frauduleuses ou se livrent à des activités illégales. KnujOn, une compagnie antispam, et LegitScript, qui offre un service qui vérifie la légitimité de certaines pharmacies en ligne, ont publié le rapport.
Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux
Dans ce didacticiel, nous vous montrerons comment utiliser la commande rm pour supprimer des fichiers et des répertoires à travers des exemples et des explications des options rm les plus courantes.
Comment déplacer des fichiers et des répertoires sous Linux (commande mv)
Le déplacement de fichiers et de répertoires est l'une des tâches les plus élémentaires que vous devez souvent effectuer sur un système Linux. Dans ce didacticiel, nous expliquerons comment utiliser la commande mv pour déplacer des fichiers et des répertoires.