フォルダにタグを付けることができるプログラムはありますか?フォルダ内に異なるファイルがあり、多数のフォルダがあるため、各フォルダにタグを付けることができれば(各ファイルにタグを付けるのとは逆に)、これらのフォルダを分類するのは非常に簡単です。そのようなことができるかどうか誰かが知っていますか?ありがとうございました。
フォルダにタグを付けることができるプログラムはありますか?フォルダ内に異なるファイルがあり、多数のフォルダがあるため、各フォルダにタグを付けることができれば(各ファイルにタグを付けるのとは逆に)、これらのフォルダを分類するのは非常に簡単です。そのようなことができるかどうか誰かが知っていますか?ありがとうございました。
回答:
それは素晴らしい質問です。私もそのようなものを探していましたが、Nautilusにすでに組み込まれているようなものはないと確信しています。
しかし、スクリプトに手を伸ばすことができれば、Nautilus file Notes
を比較的簡単に変更して同様のことを行うことができます。基本的な(+?)スクリプトが必要です。
を使用file Notes
すると、ディレクトリだけでなくファイルにもメモを追加できます。
特定のタグのノートを検索し、「ノート」に一致するタグを持つ各ディレクトリへの一時的なリンク(または永続的)を作成するのは簡単なことです...次に、これらのリンクを「検索結果のディレクトリ... Nautilusウィンドウに表示されます!...
時間があれば自分で行いますが、代わりに、Nautilus Notesにアクセスして書き込み、削除するために書いたスクリプトを次に示します。これは、上で説明したことを実行しませんが、アクセスする方法を示しています。 Lotus Notesデータキャッシュ。スクリプトは、nautilus-actions
スクリプトはpastbin.ubuntu.comにあります
UPDATE:私は今、上記のようなリンクを使用して作業するスクリプトを書いた...しかし、私は今、「オウムガイの注意」のアイデアをスワップし、中にグラフトされてきたユーザーの未知の代わりに.TAGファイル.. (そう、あなたの場合は、スクリプトのように、.tagのアイデアは「ユーザー不明」であることを思い出してください) ..
プレーンテキストファイルが好きです(シンプルで用途が広く、非常に使いやすい)
私はlocate
検索ツールとして使用しましたが、超高速ですが、を最後に実行したときと同じように最新の状態にしますupdatedb
(通常は毎日ですが、いつでも実行できます)。
スクリプトの使用法をコメントで説明しようとしましたが、十分にテストされていないため、いくつかのマイナーな点で誤動作する可能性があることを指摘しておく必要があります。
削除または削除されるのは、一時ディレクトリとソフトリンクのみです。含まれています...ソフトリンクを削除しても、ターゲット/データディレクトリは削除されません。
これがスクリプトです
UPDATE2:(バグを修正しました。最初の100個の.tagファイルのみを処理していました)
#!/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
#
tracker-utils
これで動作します。
答えはまだ受け入れられていませんが、私が投稿した例から、このプログラムの操作方法がわかるはずです。タグの追加はディレクトリでも問題なく機能し、私もテストしました。
ディレクトリの例
<sean@mymachine:~> tracker-tag -a projects src/ code/ projects/
<sean@mymachine:~> tracker-tag -s projects
Results: 3
/home/sean/projects
/home/sean/src
/home/sean/code
tracker-tag / *ユーティリティを機能させるには、trackerdを手動で起動する必要があることに注意してください。
<sean@mymachine:~> /usr/lib/tracker/trackerd &
以下を使用してトラッカーを構成できます。
<sean@mymachine:~> tracker-preferences
私はまだトラッカーアプレットを実行していません(にリストされていますが、ps
後でノーチラスに表示されnautilus -q
ません)が、私は本当に気にしません。私はほとんどGUIツールを使用していません。通常、クリックするよりもはるかに高速であるため、CLIを好みます。
以前の投稿からの回答の1つを読みましたが、Nautilusでタグを追加/検索しようとしているようですが、質問でそれを主要な基準として挙げていません。それが他の人がやっていたことなので、おそらくこの答えはあなたにとって役に立たないでしょう。そうは言っても、CLIにジャンプすることは、GUIで通常は実行できないようなことをしても、それほど悪くはありません。