C'est une excellente question, et je cherchais quelque chose comme ça aussi, mais je suis sûr que rien de tel n'est déjà intégré à Nautilus,
mais si vous pouvez vous tourner vers certains scripts, vous pouvez relativement facilement adapter Nautilus file Notes
pour faire quelque chose de similaire. Cela nécessiterait des scripts de base (+?).
Avec file Notes
vous pouvez ajouter des notes à un répertoire ainsi que des fichiers ..
Ce serait une simple question de rechercher dans les notes vos balises spécifiques , puis de créer des liens temporaires (ou permanents) vers chaque répertoire avec une balise correspondante dans les «notes» ... puis de mettre ces liens dans une «recherche répertoire des résultats ... que vous présenteriez ensuite dans une fenêtre Nautilus! ...
Si j'avais du temps libre, je le ferais moi-même, mais à la place, voici un script que j'ai écrit pour accéder et écrire et supprimer des notes Nautilus .. Il ne fait pas ce que j'ai décrit ci-dessus, mais il montre comment accéder le cache de données Notes . Le script est destiné à être utilisé parnautilus-actions
Le script est sur pastbin.ubuntu.com
MISE À JOUR : J'ai maintenant écrit un script de travail qui utilise des liens comme décrit ci-dessus .. Cependant, j'ai maintenant échangé l'idée "Notes nautilus" et greffé à la place dans les fichiers .tag de l' utilisateur inconnu .. (donc, si vous aimez le script , rappelez-vous que l'idée du .tag est «utilisateur inconnu») .
J'aime les fichiers en texte brut (ils sont simples et polyvalents et très faciles à utiliser)
que j'ai utilisé locate
comme outil de recherche, car il est ultra rapide, mais il est seulement aussi à jour que la dernière exécution de updatedb
(qui est généralement quotidienne, mais vous pouvez l'exécuter à tout moment).
J'ai essayé d'expliquer l'utilisation du script dans les commentaires, mais je dois souligner qu'il n'est pas entièrement testé, il peut donc mal se comporter sur certains points mineurs.
Les seules choses qu'il supprime / supprime sont le répertoire temporaire et tous les liens logiciels il contient ... Notez que la suppression des liens logiciels ne supprime pas les répertoires cible / données.
Voici le script
UPDATE2 : (correction d'un bug .. Il ne traitait que les 100 premiers fichiers .tag localisés)
#!/bin/bash
# Script: dirtags ...(by fred.bear)
#
# Summary: Open the file browser in a temporary directory
# which contains soft-links to directories whose
# '.tag' file contains the search string in $1
#
# .tag files are files you create in any directory which
# you wish to *tag*.
#
# .tag files are simple free form text, so you can
# put anything you like in them...
#
# The script uses `locate` to create a list of .tag file
# 'locate' is very fast, but because it depends on 'updatedb'
# for its list of current files, it can be a bit out of sync
# with a newly added .tag file... Modifying an existing
# .tag file does not effect `locate`
# To refresh the `locate` database, just run 'sudo updatedb'
# .. (updatedb typically auto-runs once a day, but you should check)
#
# Note: The search result soft links are put into a temporary directory
# This directory is removed each time you run the script
# TODO: allow saved searches (?) maybe
#
# Note: With nautilus, running the script a second time while
# the previoulsy opened wiondow is still open, cause the
# second window to open in its parent directory: /tmp/$USER
# ... but you can then just enter the 'dirtags' dir
# you see listed /tmp/$USER/$bname
# TODO: this probably happens because currently the
# directory is being removed each time the script
# is run... (related to "allow saved searches")
#
# A sample usage of this script:
#
# 1. Make a '.tag' file in each of several test directories.
# 2, For this first-time test, run 'sudo updatedb' so that the
# newly added .tag files are added to the 'locate's database
# 3. In each .tag file, put some tags (words or phrases to serch for)
# eg; action comedy drama good bad sci-fi documentary
# 4. Run this script with a single argument.. (a grep regex)
# eg "action|comedy"
#
function args_grep_links {
# $1 -- the grep regex
##echo grep -l '"'$1'"' ${tagged[@]}
< <(eval grep -l '$1' ${tagged[@]}) \
sed "s/^\(.*\)\/\.tag/ln -s \"\1\" $tagdbs/" \
>>"$tagdir"/.tag.slinks
##(gedit "$tagdir"/.tag.slinks &)
# make the soft links
source "$tagdir"/.tag.slinks
rm "$tagdir"/.tag.slinks
unset tagged
aix=
}
# Identity the script
bname="$(basename "$0")"
# Syntax
if [[ "$1" == "" ]] ; then
echo "ERROR: $bname requires one arg; a 'grep' regular expression string"
echo " eg: $bname \"music\" ......... Any instance of \"music\" .....(eg: \"musical\")"
echo " eg: $bname \"\<music\>\" ..... Only the word \"music\" ...(but not \"musical\")"
echo " eg: $bname \"muscic\|action\". Any instance of \"music\" or \"action\")"
exit 1
fi
# 'locate' the .tag files
# =======================
tagdir="/tmp/$USER/$bname"
tagdbs="${tagdir//\//\/}"
[[ -d "$tagdir" ]] && rm -rf "$tagdir" # remove all
[[ ! -d "$tagdir" ]] && mkdir -p "$tagdir" # fresh start
cp /dev/null "$tagdir"/.tag.slinks
unset tagged # array of .tag files
aix=0 # arg index
amax=10 # arg max per call to grep
fct=0 # file count
while IFS= read -r file ; do
tagged[$aix]="$file"
####echo ${tagged[aix]}
((aix++));((fct++))
(( aix == amax )) && args_grep_links "$1"
done < <(locate -ber ^\.tag$ |sed "s/.*/\"&\"/")
(( aix < amax )) && args_grep_links "$1"
sleep 1 # to allow time for rm to settle down after rm and adding links
xdg-open "$tagdir"
exit
#