È un'ottima domanda, e stavo cercando anche qualcosa del genere, ma sono abbastanza sicuro che non ci sia nulla di simile già incorporato in Nautilus,
ma se riesci a rivolgere la mano ad alcuni script, potresti adattare relativamente facilmente Nautilus file Notes
a fare qualcosa di simile. Richiederebbe alcuni script di base (+?).
Con file Notes
è possibile aggiungere note a una directory e file.
Sarebbe una semplice questione cercare le note per i tuoi Tag specifici , e quindi creare collegamenti temporanei (o permanenti) a ciascuna directory con un Tag corrispondente in "Note" ... quindi inserire questi collegamenti in una "ricerca directory dei risultati ... che presenteresti in una finestra di Nautilus! ...
Se avessi il tempo libero, lo farei da solo, ma invece, ecco uno script che ho scritto per accedere e scrivere ed eliminare le note di Nautilus .. Non fa quello che ho descritto sopra, ma mostra come accedere la cache di dati di Notes . Lo script è destinato all'uso da parte dinautilus-actions
Lo script è su pastbin.ubuntu.com
AGGIORNAMENTO : Ora ho scritto uno script funzionante che utilizza i collegamenti come descritto sopra. Tuttavia, ora ho scambiato l'idea "Note nautilus" e innestato invece nei file .tag dell'utente sconosciuto .. (quindi, se ti piace lo script , ricorda che l'idea .tag è 'utente sconosciuto') .
Mi piacciono i file di testo semplice (sono semplici e versatili e molto facili da lavorare)
che ho usato locate
come strumento di ricerca, in quanto è ultra veloce, ma è aggiornato solo come l'ultima esecuzione di updatedb
(che è in genere giornaliera, ma è possibile eseguirla in qualsiasi momento).
Ho cercato di spiegare l'uso dello script nei commenti, ma dovrei sottolineare che non è stato completamente testato, quindi potrebbe comportarsi in modo errato su alcuni punti minori.
Le uniche cose che elimina / rimuove sono la directory temporanea e tutti i soft-link contiene ... Notare che la rimozione dei soft link non rimuove le directory target / data.
Ecco la sceneggiatura
UPDATE2 : (corretto un bug. Stava elaborando solo il primo file .tag individuato 100)
#!/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
#