0

Finder 允许您按许多不同的属性对文件进行排序。

在 OSX 文件系统中,每个文件都有一个名为“comments”(com.apple.metadata:kMDItemFinderComment)的属性,它允许您添加任意字符串数据作为该文件的元数据。

Finder 在 GUI 中公开了这个“评论”属性,您可以通过它“排序”。我想我可以滥用这个属性来为每个文件“评论”填充随机数据,然后按这些随机评论排序。

tldr ; 我正在尝试在 BASH 脚本和一些 python 的帮助下创建“随机排序”功能(在 Finder 中)。

这确实可以实现(有点):

find $1 -type f -print0 | while IFS= read -r -d $'\0' file; #get a list of files in the dir
  do
  if [[ $file == *.wav ]]
    then
        hash=$(openssl rand -hex 12); #generate a random hash
        osxmetadata --set findercomment "$hash" $file; #set the comment
    fi
done

在这里,我使用osxmetadata python 实用程序来完成繁重的工作。

虽然它按预期工作,但它真的很慢:

https://i.stack.imgur.com/d7exk.gif

我正在尝试对包含许多项目的文件夹执行此操作,并且经常会“重新播种”带有随机评论的文件。

任何人都可以建议优化我可以尝试使其更快吗?我尝试使用xattrs,但这似乎并没有在更新时重新索引 finder 中的评论。

4

1 回答 1

0

我将 then 子句包装在 a 中(...)&,并在循环后添加一个等待。然后它将并行执行每个文件。

于 2021-01-26T21:58:08.647 回答