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é.
Pour obtenir la dernière version, utiliser de préférence les instructions présentes ici : https://releases.cclaude.rocks/recent-files/
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
ᦿ