有没有可以标记文件夹的程序?我在一个文件夹中有不同的文件,并且有很多文件夹,如果我可以标记每个文件夹(与标记每个文件相反),那么对这些文件夹进行分类将非常容易。有谁知道这样的事情可以做吗?谢谢。
有没有可以标记文件夹的程序?我在一个文件夹中有不同的文件,并且有很多文件夹,如果我可以标记每个文件夹(与标记每个文件相反),那么对这些文件夹进行分类将非常容易。有谁知道这样的事情可以做吗?谢谢。
Answers:
这是一个很好的问题,我也在寻找类似的东西,但是我很确定Nautilus已经内置了类似的东西,
但是如果您可以动手做一些脚本编写工作,则可以相对轻松地使Nautilus file Notes
进行类似的操作。这将需要一些基本的(+?)脚本。
使用file Notes
可以将Notes添加到目录以及文件。
只需在Notes中搜索您的特定标签,然后创建到每个目录的临时链接(或永久链接),并在“ Notes”中使用匹配的标签即可,然后将这些链接放入“搜索”中,这很简单。结果目录...您将在Nautilus窗口中显示该目录!...
如果有空闲时间,我自己动手做,但是,这是我编写的用于访问以及编写和删除Nautilus Notes的脚本。它不执行上述操作,但确实显示了如何访问Notes数据缓存。该脚本供以下人员使用nautilus-actions
该脚本位于pastbin.ubuntu.com
更新:我现在编写了一个工作脚本,该脚本使用了如上所述的链接。.但是,我现在交换了“ nautilus Notes”的想法,并移植到了用户未知的 .tag文件中。. (因此,如果您喜欢该脚本,请记住,.tag的想法是“用户未知”。.
我喜欢纯文本文件(它们简单,通用并且非常易于使用),
我已经用作locate
搜索工具,因为它超快,但是只能作为上一次运行的最新信息updatedb
(通常是每天一次,但是您可以随时运行)。
我试图在注释中解释该脚本的用法,但我应该指出,该脚本尚未经过全面测试,因此可能在某些小问题上表现不佳。.
删除/删除的唯一内容是temp目录和所有软链接它包含...请注意,删除软链接不会删除目标/数据目录。
这是脚本
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
请注意,您需要手动启动trackerd,以使tracker-tag / * utils起作用:
<sean@mymachine:~> /usr/lib/tracker/trackerd &
您可以使用以下方式配置跟踪器:
<sean@mymachine:~> tracker-preferences
我仍然没有运行跟踪器小程序(列在中ps
,但即使在之后也不显示在nautilus中nautilus -q
),但我并不在乎。我大部分时间不使用GUI工具。我更喜欢CLI,因为它通常比单击东西要快得多。
我从较早的帖子中读到了您的一个回复,尽管您没有将其作为主要条件列出,但您似乎正在尝试在Nautilus中添加/搜索标签。那是其他人正在做的事情,所以也许这个答案对您毫无用处。就是说,如果您完成了通常无法在GUI中完成的工作,则偶尔跳到CLI并不是很糟糕。