将目录(和子目录)中的每个PDF文件移动到另一个文件夹

时间:2011-03-02 20:39:24

标签: bash shell applescript directory

我想将文件夹中的每个.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脚本做同样的事情?

3 个答案:

答案 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