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

Bash 将目录(和子目录)中的每个PDF文件移动到另一个文件夹,bash,shell,applescript,directory,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

我想将文件夹中的每个.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脚本执行相同的操作?

下面将递归搜索并将所有*.pdf文件移动到另一个文件夹

find /your/folder -name "*.pdf" -exec mv {} /your/other/folder \;

下面将递归搜索并将所有*.pdf文件移动到另一个文件夹

find /your/folder -name "*.pdf" -exec mv {} /your/other/folder \;

使用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
find src/ -name "*.pdf" -exec mv {} dest/ \;
这将传输所有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
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
find src/ -name "*.pdf" -exec mv {} dest/ \;

使用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
find src/ -name "*.pdf" -exec mv {} dest/ \;
这将传输所有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
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
find src/ -name "*.pdf" -exec mv {} dest/ \;

这里有一个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

这里有一个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

@Fabio:你想在另一个文件夹中镜像目录树吗?那么,上面的内容现在对你有效吗(在模式周围加引号)?@Fabio:你想在另一个文件夹中镜像目录树吗?那么,上面的内容现在对你有效吗(在模式周围加引号)?