cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-08-27

Le code de eg n’est actuellement pas à jour et ne supporte pas les nouvelles versions de python.

L’installation tel qu’elle est aujourd’hui prĂ©conisĂ©e par pip devrait ĂȘtre:

sudo apt install python3-eg

Mais le paquet python3-eg n’existe pas actuellement.

Rappels concernant « Man »

L’objectif de la commande man (manuel) est d’afficher l’aide d’une commande donnĂ©e. Plus gĂ©nĂ©ralement sur des Ă©lĂ©ments du systĂšme puisque cela inclue les fichiers de configuration et des points d’entrĂ©e pour les programmes.

Par exemple :

Pour les explications du contenu du fichier /etc/machine-id :

man machine-id

Pour le fonctionnement du fichier /etc/fstab :

man fstab

Pour savoir comment un programme utilisant l’API C:


 peut crĂ©er un fichier temporaire :

man mkstemps


 peut allouer de la mĂ©moire :

man malloc

ඏ

La commande « eg »

eg est un programme qui documente les commandes par l’exemple, au lieu d’une description formelle.

En anglais « e.g. » est une abréviation anglaise pour dire « par exemple ».

Exemple complet pour « find » :

Si vous tapez la commande :

eg find

vous obtiendrez le résultat ci-dessous :

  • eg find
    # find
    
    files in searchdir named file.txt
    
        find ./searchdir -name file.txt
    
    
    only directories in searchdir
    
        find ./searchdir -type d
    
    
    show more info
    
        find ./searchdir -name 'file.txt' -ls
    
    
    # Basic Usage
    
    Find files and directories matching a given name:
    
        find <searchdir> -name <name>
    
    
    
    # By Name
    
    Search `/searchdir` for files and directories named `file.txt`:
    
        find ./searchdir -name file.txt
    
    
    
    ## Case Insensitive
    
    Use `-iname` for case insensitive name searching:
    
        $ find ./searchdir -iname file.txt
        ./searchdir/file.txt
        ./searchdir/bar/FiLe.TxT
    
    
    
    ## Wildcards
    
    Wildcards are supported with quotes.
    
    Find files starting with `prefix`:
    
        $ find ./searchdir -name "prefix*"
        ./searchdir/prefix.txt
        ./searchdir/prefixAndMore.txt
    
    
    
    # By Type
    
    ## Files only
    
    Will find files (`-type f`) but not directories named `foo`:
    
        find ./searchdir -type f foo
    
    
    
    ## Directories and Folders
    
    List only directories by specifying `-type d`:
    
        $ find ./searchdir -type d -name 'directory'
        ./searchdir/directory
    
    
    
    # Size
    
    Use the `-size` flag followed by a number and a unit. Without a unit it matches
    blocks.
    
    Find entries exactly two bytes (`-size 2c`). `c` stands for character:
    
        find ./searchdir -size 2c
    
    
    Find files exactly 2 kilobytes (`-size 2k`):
    
        find ./searchdir -size 2k
    
    
    Find files exactly 2 megabytes (`-size 2M`):
    
        find ./searchdir -size 2M
    
    
    
    ## Ranges
    
    Prefix a size with `+` for >= that value and `-` for <= that value.
    
    Find files greater than 5k (`-size +5k`):
    
        find /dir/to/search +5k
    
    
    Find files less than 5k (`-size -5k`):
    
        find /dir/to/search -5k
    
    
    
    # Time
    
    Files can also be filtered based on the last time they were changed, modified,
    and accessed.
    
    `-ctime` refers to the last time the inode or file was changed, which includes
    updating file attributes like owner or permissions as well as file
    modifications.
    
    `-mtime` refers to the last time a file was modified.
    
    `-atime` refers to the last time a file was accessed, including by other
    command line tools.
    
    Arguments to these flags can be in seconds (`s`), minutes (`m`), hours (`h`),
    days (`d`), or weeks (`w`). Preceding an argument with `+` will return files
    greater than the condition, while `-` will return files less than the
    condition.
    
    Find files modified (`-mtime`) less than 20 minutes (`-20m`) ago:
    
        find /searchdir -mtime -20m
    
    
    Find files last accessed (`-atime`) more than 2 weeks (`+2w`) ago:
    
        find /searchdir -atime -w2
    
    
    Alternatively, you can return files that have been modified more recently than
    another file with `-newer`:
    
        find /searchdir -newer other.txt
    
    
    
    # Depth
    
    Find files and directories only two levels deep (`-depth 2` or `-d 2`):
    
        $ find ./one -depth 2
        ./one/two
        ./one/foo.txt
    
    
    Find only files (`-type f`) >= two levels (`-mindepth 2`) and <= three levels
    (`-maxdepth 3`) deep:
    
        $ find ./one -type f -mindepth 2 -maxdepth 3
        ./one/twoLevels.txt
        ./one/two/threeLevels.txt
    
    
    
    # Boolean Operators
    
    Flags are ANDed by default, but can also achieve OR and NOT functionality.
    
    
    ## AND
    
    List files greater bigger than 500k (`+500k`) and named `bigFile.txt`
    (`-name bigFile.txt`). These two commands are equivalent:
    
        $ find ./searchdir -size +500k -name bigFile.txt
        $ find ./searchdir -size +500k -and -name bigFile.txt
    
    
    ## OR
    
    List files bigger than 500k (`+500k`) or those that are named `smallFile.txt`
    (`-or -name smallFile.txt`):
    
        find ./searchdir -size +500k -or -name smallFile.txt
    
    
    ## NOT
    
    List files bigger than 50 megabytes (`-size +50M`) that are not named
    `unwanted.txt` (`-not -name unwanted.txt`):
    
        find ./searchdir -size +50M ! -name unwanted.txt
    
    
    
    # Execute Commands on Results
    
    You can execute a command on all matched files using the `-exec` option. The
    string `{}` will be replaced with the name of the matched file, and the command
    must be terminated with an escaped semicolon (`\;`).
    
    
    ## Change Permissions
    
    Give all files (`-type f`) 755 permissions (`-exec chmod 755 '{}' \;`):
    
        find ./searchdir -type f -exec chmod 755 '{}' \;
    
    
    ## Delete
    
    Deleting files has its own flag. Find all files (`-type f`) ending with a tilde
    (`-name '*~'`) and remove them (`-delete`):
    
        find ./searchdir -type f -name '*~' -delete
    
    

Conclusion

La commande eg est parfaite pour une personne qui a une idĂ©e de la commande Ă  utiliser mais qui n’a pas la syntaxe exacte dans la tĂȘte. Pour une personne expĂ©rimentĂ©e, c’est trĂšs utile pour les commandes qu’il utilise peu.

À ma connaissance la documentation de eg n’existe qu’en anglais, de toute façon pour la plupart des langages, une bonne connaissance de la langue anglaise est nĂ©cessaire, savoir que find veut dire « cherche/trouve » est quand mĂȘme utile lorsqu’on souhaite utiliser cette commande.

Notez Ă©galement que la base de donnĂ©e de la commande eg est moins complĂšte que celle de man. Vous pouvez obtenir la liste des commandes connue par eg Ă  l’aide de :

eg --list

Il est possible de compléter la documentation pour de nouvelle commandes

eg n’est donc pas vraiment un remplacement pour la commande man mais plutĂŽt un complĂ©ment.

La documentation de la commande indique :

Les pages man sont gĂ©niales. Comment fonctionne find, dĂ©jà ? man find vous le dira, mais vous devrez parcourir toutes les options juste pour comprendre une utilisation de base. Et qu’en est-il de l’utilisation de tar ? MĂȘme avec les pages du manuel, tar est rĂ©putĂ© pour ĂȘtre impĂ©nĂ©trable sans la recherche d’exemples sur Google.

Installation

eg est Ă©crit en python et n’est pas directement supportĂ© par les gestionnaires de paquets systĂšme, cependant vous pouvez utiliser le gestionnaire de paquets python pip pour installer eg.

pip3 install eg # ou simplement pip

ඏ

Références

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog