Es ist eine großartige Frage, und ich habe auch nach so etwas gesucht, aber ich bin mir ziemlich sicher, dass in Nautilus nichts dergleichen bereits eingebaut ist.
Wenn Sie jedoch Ihre Hand auf ein Skript richten können, können Sie Nautilus relativ leicht anpassen file Notes
, um etwas Ähnliches zu tun. Es würde einige grundlegende (+?) Skripte erfordern.
Mit file Notes
können Sie einem Verzeichnis Notizen sowie Dateien hinzufügen.
Es wäre eine einfache Sache, die Notizen nach Ihren spezifischen Tags zu durchsuchen und dann temporäre (oder permanente) Links zu jedem Verzeichnis mit einem passenden Tag in den "Notizen" zu erstellen ... und diese Links dann in eine "Suche" einzufügen Ergebnisverzeichnis ... das Sie dann in einem Nautilus-Fenster präsentieren würden! ...
Wenn ich die Freizeit hätte, würde ich es selbst tun, aber stattdessen ist hier ein Skript, das ich geschrieben habe, um auf Nautilus Notes zuzugreifen und es zu schreiben und zu löschen. Es macht nicht das, was ich oben beschrieben habe, aber es zeigt, wie man darauf zugreift der Notes-Datencache . Das Skript ist für die Verwendung durch vorgesehennautilus-actions
Das Skript befindet sich unter pastbin.ubuntu.com
UPDATE : Ich habe jetzt ein funktionierendes Skript geschrieben, das wie oben beschrieben Links verwendet. Jetzt habe ich jedoch die Idee "nautilus Notes" ausgetauscht und stattdessen die .tag-Dateien des unbekannten Benutzers eingepfropft . (Wenn Ihnen das Skript gefällt Denken Sie daran, dass die .tag-Idee "Benutzer unbekannt" ist .
Ich mag einfache Textdateien (sie sind einfach und vielseitig und sehr einfach zu bearbeiten).
Ich habe sie locate
als Suchwerkzeug verwendet, da sie ultraschnell sind, aber es ist Nur so aktuell wie die letzte Ausführung von updatedb
(normalerweise täglich, aber Sie können sie jederzeit ausführen).
Ich habe versucht, die Verwendung des Skripts in den Kommentaren zu erklären, aber ich sollte darauf hinweisen, dass es nicht vollständig getestet wurde, sodass es sich in einigen kleinen Punkten möglicherweise schlecht verhält.
Die einzigen Dinge, die es löscht / entfernt, sind das temporäre Verzeichnis und alle Softlinks Es enthält ... Beachten Sie, dass durch das Entfernen von Softlinks die Ziel- / Datenverzeichnisse nicht entfernt werden.
Hier ist das Skript
UPDATE2 : (Fehler behoben. Es wurden nur die ersten 100 gefundenen .tag-Dateien verarbeitet.)
#!/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
#