cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu

Une fois n’est pas coutume, j’ai écrit un petit programme permettant de retrouver les derniers fichiers modifiés sur le disque.

Ce programme se distingue du menu « Fichiers Récents » (« Recent Files » en anglais) par le fait qu’il recherche effectivement sur le disque les fichiers modifier depuis n jours.

Le menu « Fichiers Récents » quand garde en mémoire la liste de fichiers ouverts. Il n’est donc pas au courant si le fichier est créé depuis une application (LibreOffice par exemple) ou s’il a été renommé ou déplacé.


ඏ

Installation

Le programme est basé sur des scripts bash que vous pouvez installer en ouvrant un terminal « CTRL+ALT+T » et en copiant ce qui suit :

cd /tmp &&
wget 'https://releases.cclaude.rocks/recent-files/recent-files-v2023-04-03.tar.gz'  &&
tar -zxf recent-files-*.tar.gz &&
cd recent-files/ &&
sudo bash recent-files-install.sh

Pour exécuter l’installation, vous aurez besoin des droits administrateurs, votre mot de passe de session vous sera demandé.


ඏ

Désinstallation

Pour désinstaller le programme utiliser :

sudo /usr/local/share/recent-files/recent-files-remove.sh

ඏ

Utilisation

Depuis le menu

Ouvrez le menu (Touche "SUPER") et commencer à écrire Fichiers récents (ou Recent Files en anglais).


Depuis le terminal

recent-files

ඏ

Sous le capot

Détails de l'installation

  • Explication de l’installation
    cd /tmp &&
    wget 'https://releases.cclaude.rocks/recent-files/recent-files-v2023-04-03.tar.gz'  &&
    tar -zxf recent-files-*.tar.gz &&
    cd recent-files/ &&
    sudo bash recent-files-install.sh
    
    Commande Description
    cd /tmp On se déplace dans le répertoire des fichiers temporaires qui sera vidé au prochain démarrage. N’importe quel dossier peut faire l’affaire, l’avantage ici est qu’il n’y a pas de ménage à faire. Notez qu’en général ce n’est pas une bonne idée d’utiliser /tmp pour des questions de sécurités.
    && On passe à la commande suivante si la commande précédente n’a pas échouée
    wget 'https://releases.cclaude.rocks/recent-files/recent-files-v2023-04-03.tar.gz' On télécharge l’archive contenant l’application et l’installeur.
    && Commande suivante si pas d’erreur avant
    tar -zxf recent-files-*.tar.gz Extraction de l’archive
    && …
    cd recent-files/ Change de dossier
    && …
    sudo bash recent-files-install.sh Lance l’installeur à l’aide de bash avec les droits administrateurs (sudo)

Les principaux éléments du programmes

  • Comment fonctionne l'application

    Je ne vais pas détailler tout le code dans ce billet, mais voici les deux principaux points :

    L’affichage se fait à l’aide de zenity (qui est installé si nécessaire) qui permet d’ouvrir des fenêtres GTK+ directement depuis un shell.

    Le cœur du programme est la recherche des fichiers depuis n jours. Voici le code pour rechercher les fichiers modifiés ou créer dans les 24 dernières heures :

    find "${HOME}" -type d \
      '(' \
        -path './.cache' -or \
        -path './.config' -or \
        -path './.local' -or \
        -path './.mozilla' -or \
        -path './.cinnamon' -or \
        -path './.linuxmint' \
      ')' \
      -prune -o -type f -mtime -1 -print
    

    Détail des paramètres de la commande find (le caractère \ en fin de ligne indique que la ligne continue sur la ligne suivante :

    Paramètre Description
    "${HOME}" On lance la recherche depuis le dossier de l’utilisateur courant, ignorant ainsi le reste du disque
    -type d Les prédicats suivant ne s’appliqueront qu’aux dossiers
    '(' Ouvre la parenthèse, permet de grouper des prédicats
    -path './.cache' Si le chemin est ./.cache (dossier contenant les caches)
    -or ou
    -path './.config' Si le chemin est ./.config (dossier contenant de la configuration)
    -or ou
    -path './.local' Si le chemin est ./.local (dossier contenant de la configuration)
    -or ou
    -path './.mozilla' … (configuration Firefox)
    -or ou
    -path './.cinnamon' … (configuration Cinnamon)
    -or ou
    -path './.linuxmint' … (configuration Linux Mint)
    ')' Ferme la parenthèse
    -prune Les dossiers préalablement sélectionnés sont ignoré (leur contenu ne sera pas examiné)
    -o ou (-o et -or sont de synonymes)
    -type f Les prédicats suivant ne s’appliqueront qu’aux fichiers
    -mtime -1 Filtre les fichiers dont les données ont été modifiées pour la dernière fois il y a moins de n*24 heures.
    -print Affiche le nom des fichiers ainsi sélectionnés

ඏ

ᦿ


ℹ 2006 - 2023 | 🏠 Accueil du domaine | 🏡 Accueil du blog