我有几百个(甚至一千个)PDF 文件;我想将它们每个都放在单独的文件夹中,理想情况下可以随时设计一个层次结构。
有没有一种合理的方法来执行此操作,比创建新文件夹->标签,然后拖入更快?
层次结构的深度可能有十几个或更多。一些文件夹可能有多个文件,但许多文件都是唯一的。
非常感谢您的想法 SE!
答案1
你可以从如下 Bash 脚本开始:
for i in {1..1000}
do
mkdir $i_folder
done
这将创建 1,000 个文件夹,名称从 1 到 1000。您可以编辑它以将自己的名称添加到数字中。您可以在 do 循环中添加 mv 命令以将文件移动到文件夹中。在不了解您的文件的更多信息的情况下,这是我能做的最好的事情。
答案2
当然要先进行备份!
for i in $(find . -maxdepth 1 -type f -iname "*.pdf" -exec basename "{}" .pdf \;); \
do mkdir $i; \
mv $i.pdf $i; \
done
只需find
从当前目录 (-maxdepth 1) 获取文件 (-f),这些文件的名称以“.pdf”结尾,忽略字母大小写。然后,它获取文件名中 .pdf 之前的部分 (basename) 并将其保存在变量中。
然后它使用该变量创建一个目录(mkdir
),因此文件“AdobeFile.pdf”将创建一个目录“AdobeFile”,然后它将mv
文件移动()到该目录。
我建议复制将文件子集放到临时目录中,对这些文件进行操作,检查文件是否放到了您想要的位置,然后对全套文件进行操作。
我尚未测试如何正确处理带有空格或 . 的文件名,以及带有奇怪字符(如 UTF8)的文件名。
答案3
因为你给它贴上了“组织软件”的标签:如果我不了解你计划的层次结构,或者你自己还不知道层次结构,那么事情很快就会变得很困难。你可以尝试使用智能文件夹、AppleScript 或 FolderActions。但无论如何,在使用这些之前,层次结构需要设计得相当好。我建议使用专门的软件来完成这项任务。
根据 PDF 的类型、文件名的“质量”以及其中嵌入的元数据的质量:有很多选择可以做到这一点。
EagleFiler、Yojimbo、DevonThink 并不是唯一容易想到的商业竞争者。可以为你创建类似 iTunes 层次结构的免费应用程序可能位于口径,特别是如果嵌入的元数据质量合理,并且文档更接近“书籍”类型,或者比比桌如果您可以使用 DOI 之类的标识符,那么它更适合科学、期刊论文类型的 PDF。两者都提供一种 PDF 自动归档功能。我发现 BibDesk 非常适合这项任务,而且可定制性很高。