我想将文件夹中的每个.pdf文件及其子文件夹移动到另一个文件夹。我正在尝试使用AppleScript执行此操作,但会返回错误:
tell application "Finder"
set theFolder to path to downloads folder from user domain
set destFolder to choose folder
repeat with currentFolder in (every folder of theFolder)
move (every item of (currentFolder) that name extension is "pdf") to destFolder
end repeat
end tell
有谁知道如何解决它?
另外,有没有办法对shell脚本做同样的事情?
答案 0 :(得分:3)
以下将递归搜索并将所有 * .pdf文件移动到另一个文件夹。
find /your/folder -name "*.pdf" -exec mv {} /your/other/folder \;
答案 1 :(得分:2)
使用CLI,rsync是一个很好的选择。鉴于这种结构:
$ find src
src
src/1.pdf
src/4.txt
src/a
src/a/2.pdf
src/a/b
src/a/b/3.pdf
src/c
src/c/5.txt
这将转移所有PDF和目录,不包括所有其他文件:
$ rsync -av --include="*.pdf" --include "*/" --exclude "*" src/ dest
building file list ... done
created directory dest
./
1.pdf
a/
a/2.pdf
a/b/
a/b/3.pdf
c/
如果您不关心维护文件夹结构:
find src/ -name "*.pdf" -exec mv {} dest/ \;
答案 2 :(得分:1)
这是一个AppleScript方法。使用命令中的“全部内容”使其也可以搜索子文件夹。
set theFolder to path to downloads folder from user domain
set destFolder to choose folder
tell application "Finder"
set thePDFs to files of entire contents of theFolder whose name extension is "pdf"
move thePDFs to destFolder
end tell