我目前正在OS X上使用tag,以便在我保存在转储文件夹中的文件的bash中检索标记值。
检索这些标记的目的是将文件移动到单独的文件夹中。
但是,我不确定如何解析标记的输出,然后将文件移动到另一个目录。
这是我到目前为止所得到的。
#Allow correct parsing of spaces in a file name
SAVEIFS=$IFS;
IFS=$(echo -en "\n\b");
dumpFolder="/Users/me/Documents/Dropbox/Dump/";
tag -l ${dumpFolder}*;
##Unset SAVEIFS
IFS=$SAVEIFS;
tag -l ${dumpFolder}*;
将为我提供如下输出:
/Users/me/Documents/Dropbox/Dump/EUROSTAR-1.pdf Personal,Travel
/Users/me/Documents/Dropbox/Dump/EUROSTAR-2.pdf Travel,Work
/Users/me/Documents/Dropbox/Dump/Eurostar Tickets - September 2014.pdf Personal,Travel
/Users/me/Documents/Dropbox/Dump/Eurostar-2015.01.14.pdf Travel,Work
返回的代码是Travel
,Work
和Personal
。文件始终会使用Work
或Personal
进行标记,但不能同时使用两者标记。任何文件都可以有Travel
。
为了获得标签,我尝试使用for循环,但是当我尝试打开标签时,这会将所有文件及其标签返回到一行。
无论哪种方式,我都不知道如何按标签移动。
有什么想法吗?
答案 0 :(得分:0)
知道了:
诀窍是使用xargs。感谢this page。我之前应该注意到我在OS X上。
tag -l ${dumpFolder}*;
可以更改为
tag MyTag ${dumpFolder}* | xargs -I {} mv {} /path/to/dir/;