it-swarm.com.de

Ordner-Tagging?

Gibt es ein Programm, das Ordner markieren kann? Ich habe verschiedene Dateien in einem Ordner und es gibt zu viele Ordner. Wenn ich jeden Ordner markieren könnte (im Gegensatz zu jeder Datei), wäre es für mich sehr einfach, diese Ordner zu kategorisieren. Weiß jemand, ob so etwas getan werden kann? Vielen Dank.

8
user12843

Sie können eine Datei wie hinzufügen

.tag

in jeden Ordner. Dort können Sie Informationen als Text speichern. Sie können sie später zu Ihrer Information durchsuchen.

Vielleicht sind Sie mit einem Tool wie find besser geeignet.

Fühlen Sie sich frei, nach der Verwendung zu fragen.

3
user unknown

Das ist eine großartige Frage, und ich habe auch nach so etwas gesucht, aber ich bin mir ziemlich sicher, dass es nichts Vergleichbares in Nautilus gibt.

wenn Sie sich jedoch mit Skripten befassen können, können Sie Nautilus file Notes relativ einfach anpassen, 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 Ihrem speziellen Tag (s) zu durchsuchen und dann temporäre Links (oder permanente) zu jedem Verzeichnis mit einem passenden Tag in den Notizen zu erstellen `... dann legen Sie diese Links in ein 'Suchergebnis'-Verzeichnis ... das Sie dann in einem Nautilus-Fenster anzeigen würden! ...

Wenn ich die Freizeit hätte, würde ich es selbst machen, 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 auf den Notes-Datencache zugegriffen wird . Das Skript ist zur Verwendung durch nautilus-actions Vorgesehen.

Das Skript befindet sich unter pastbin.ubuntu.com


[~ # ~] update [~ # ~] : Ich habe jetzt ein funktionierendes Skript geschrieben, das Links wie oben beschrieben verwendet. Wir haben jetzt die Idee "Nautilus Notes" ausgetauscht und stattdessen Benutzer unbekannt .tag-Dateien hinzugefügt. (Wenn Ihnen das Skript gefällt, denken Sie daran, dass das .tag Idee ist 'Benutzer unbekannt) ..
Ich mag reine Textdateien (sie sind simple und vielseitig und sehr einfach zu bearbeiten)
Ich habe locate als Suchwerkzeug verwendet, da es ultraschnell ist, aber es ist nur so aktuell wie das letzte Ausführen von updatedb (das heißt in der Regel täglich, aber Sie können es jederzeit ausführen).

Ich habe versucht, die Verwendung des Skripts in den Kommentaren zu erläutern, möchte jedoch darauf hinweisen, dass es nicht vollständig getestet wurde, sodass es sich in einigen geringfügigen Punkten möglicherweise fehlerhaft verhält.
Das einzige, was gelöscht/entfernt wird, sind das temporäre Verzeichnis und alle darin enthaltenen Softlinks ... Beachten Sie, dass durch das Entfernen von Softlinks die Ziel-/Datenverzeichnisse nicht entfernt werden.

Hier ist das Drehbuch

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
#
3
Peter.O

tracker-utils Wird dafür funktionieren.

Wie suche ich nach Dateien mit Tags?

Die Antwort wurde noch nicht akzeptiert, aber die Beispiele, die ich gepostet habe, sollen Ihnen eine Vorstellung davon geben, wie Sie mit diesem Programm arbeiten. Das Hinzufügen von Tags funktioniert auch in Verzeichnissen einwandfrei, und ich habe es auch getestet.

Verzeichnisbeispiel

<[email protected]:~> tracker-tag -a projects src/ code/ projects/
<[email protected]:~> tracker-tag -s projects
Results: 3
  /home/sean/projects
  /home/sean/src
  /home/sean/code

Beachten Sie, dass Sie trackerd manuell starten müssen, damit die tracker-tag/* -Utils funktionieren:

<[email protected]:~> /usr/lib/tracker/trackerd &

Sie können den Tracker folgendermaßen konfigurieren:

<[email protected]:~> tracker-preferences

Ich habe das Tracker-Applet immer noch nicht ausgeführt (aufgeführt in ps, aber es wird auch nach nautilus -q Nicht in Nautilus angezeigt), aber es ist mir egal. Ich benutze zum größten Teil keine GUI-Tools. Ich bevorzuge CLI, da es normalerweise viel schneller ist, als Dinge anzuklicken.

Ich habe eine Ihrer Antworten aus einem früheren Beitrag gelesen und es sieht so aus, als würden Sie versuchen, Tags in Nautilus hinzuzufügen/zu suchen, obwohl Sie dies nicht als Hauptkriterium in Ihrer Frage angegeben haben. Genau das hat die andere Person getan. Vielleicht ist diese Antwort für Sie nutzlos. Das heißt, gelegentlich zu CLI zu springen ist nicht so schlimm, wenn Sie Dinge erledigen, die Sie normalerweise in einer GUI nicht tun können.

1
Sean Lewis