Переместить каждый файл PDF внутри каталога (и подкаталога) в другую папку - PullRequest
1 голос
/ 02 марта 2011

Я хочу переместить каждый файл .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

Кто-нибудь знает, как это решить?

Кроме того, есть ли способ сделать то же самое с помощью сценария оболочки?

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

Следующее будет выполнять рекурсивный поиск и перемещать все * .pdf файлы в другую папку.

find /your/folder -name "*.pdf" -exec mv {} /your/other/folder \;
2 голосов
/ 02 марта 2011

Используя 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/ \;
1 голос
/ 03 марта 2011

Вот метод 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...