Both sides previous revisionPrevious revisionNext revision | Previous revision |
informatique:linux:commandes_linux [2024/10/20 21:01] – [strace] pteu | informatique:linux:commandes_linux [2025/04/25 07:57] (current) – [diff] ignore option pteu |
---|
=====diff===== | =====diff===== |
| |
diff permet d'afficher les différence entre 2 fichiers : | diff permet d'afficher les différences entre 2 fichiers : |
<code> | <code bash> |
cd /tmp ; echo "toto" > toto ; echo "titi" > titi | cd /tmp ; echo "toto" > toto ; echo "titi" > titi |
diff toto titi | diff toto titi |
> titi | > titi |
</code> | </code> |
| |
| On peut ignorer des motifs avec l'option ''-I <motif>'', par exemple pour ignorer les commentaires : ''diff -I "^#" toto titi''. |
| |
Un patchfile c'est un fichier qui contient la sortie d'un diff : | Un patchfile c'est un fichier qui contient la sortie d'un diff : |
<code> | <code bash> |
diff -u toto titi > toto_titi.patch | diff -u toto titi > toto_titi.patch |
</code> | </code> |
Pour patcher toto avec les modifications de titi on utilise la commande **patch** avec le patchfile : | Pour patcher toto avec les modifications de titi on utilise la commande **patch** avec le patchfile : |
<code> | <code bash> |
patch -b toto toto_titi.patch | patch -b toto toto_titi.patch |
patching file toto | patching file toto |
</code> | </code> |
| |
Liste des options les plus utilisées (totalement subjectif) : | Liste des options utiles (totalement subjectif) : |
* ''-type d'' pour spécifier le type du fichier recherché (notamment **d**irectory, regular **f**ile, symbolic **l**ink) | * ''-type d'' pour spécifier le type du fichier recherché (notamment **d**irectory, regular **f**ile, symbolic **l**ink) |
* ''-name nom'' permet de spécifier un nom de fichier ou un motif. Si motif, il est recommandé de le saisir entre "" ou d'échapper proprement les caractères interprétés (ex : ''-name \*.txt'' ou ''-name "*.txt"'') sous peine de rencontrer l'erreur suivante : //find: les chemins doivent précéder l'expression : <un fichier texte>// | * ''-name nom'' permet de spécifier un nom de fichier ou un motif. Si motif, il est recommandé de le saisir entre "" ou d'échapper proprement les caractères interprétés (ex : ''-name \*.txt'' ou ''-name "*.txt"'') sous peine de rencontrer l'erreur suivante : //find: les chemins doivent précéder l'expression : <un fichier texte>// |
* ''-type f -executable'' permet d'afficher les fichiers exécutables. Fonctionne aussi avec ''-readable'' et ''-writable''. | * ''-type f -executable'' permet d'afficher les fichiers exécutables. Fonctionne aussi avec ''-readable'' et ''-writable''. |
* ''-regex 'expr_reg''' permet d'utiliser une expression régulière comme critère de recherche | * ''-regex 'expr_reg''' permet d'utiliser une expression régulière comme critère de recherche |
* ''-exec'' permet d'exécuter une commande pour chaque résultat de la commande ''find'' (voir exemples) | * ''-exec'' permet d'exécuter une commande pour chaque résultat de la commande ''find'' (voir exemples). On peut additionner plusieurs commandes à exécuter, en spécifiant plusieurs fois le paramètre ''-exec'' |
* ''-size +1000M'' ne valide que les fichiers dont la taille est supérieure à 1000 Mo. | * ''-size +1000M'' ne valide que les fichiers dont la taille est supérieure à 1000 Mo. |
* ''-printf'' pour contrôler la sortie et n'afficher que des champs spécifiques du fichier ; voir la partie exemples plus bas. | * ''-printf'' pour contrôler la sortie et n'afficher que des champs spécifiques du fichier ; voir la partie exemples plus bas. |
find . -regextype posix-egrep -iregex '.*.avi|.*.mkv|.*.mp4|.*.m4v|.*.m2ts' | sed 's/.*\///g' | sort | find . -regextype posix-egrep -iregex '.*.avi|.*.mkv|.*.mp4|.*.m4v|.*.m2ts' | sed 's/.*\///g' | sort |
| |
# supprimer toutes ces maudites miniatures Windows : | # afficher puis supprimer supprimer toutes ces maudites miniatures Windows : |
find . -name Thumbs.db -exec rm {} \; | find . -name Thumbs.db -exec echo {} \; -exec rm -f {} \; |
| |
# attribuer des permissions à tous les sous-répertoires contenus dans le répertoire pics : | # attribuer des permissions à tous les sous-répertoires contenus dans le répertoire pics : |