OSX: проверьте наличие подпапок, преобразуйте структуру каталогов в новую папку, затем переместите на рабочий стол

OSX: проверьте наличие подпапок, преобразуйте структуру каталогов в новую папку, затем переместите на рабочий стол

Я в процессе очистки огромной библиотеки манги (в основном, но не только, файлов изображений). Каждая манга имеет главную папку, содержащую подпапки, по одной на каждый том.

Но иногда папки томов содержат только файлы изображений, а иногда они содержат подпапки.

Мне нужен скрипт, который для выбранной папки манги:

  • проверьте, какие папки тома имеют подпапки
  • выровнять структуру каталогов папок тома с подпапками. Вместо того, чтобы помещать все изображения в родительскую папку и стирать подпапки, я бы хотел создать новую папку на рабочем столе и скопировать в нее все изображения подпапок.
  • переименуйте папку, созданную на рабочем столе, в честь ее исходной родительской папки

До :

манга_папка

volume1_folder

    subfolder1 / image1, image2, image3
    subfolder2 / image4, image5, image6
    subfolder3 / image7, image8, image9

volume2_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

volume3_folder

    subfolder1 / image1, image2, image3
    subfolder2 / image4, image5, image6
    subfolder3 / image7, image8, image9

После:

Рабочий стол:

volume1_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

volume3_folder

    image1, image2, image3, image4, image5, image6, image7, image8, image9

Оригинальные папки должны оставаться нетронутыми.чтобы я мог проверить наличие потерянных файлов и т. д.

Сейчас я использую AppleScript, который выравнивает структуру каталогов для каждой папки тома, которую я выбираю. Он создает внутри новую папку, названную в честь родительской папки, со всеми скопированными изображениями внутри.

Чего не происходит:

  • проверьте, какие папки томов имеют подпапки (мне приходится выбирать каждую папку тома по отдельности и запускать скрипт каждый раз)
  • переместить созданную папку с упорядоченной структурой каталогов на рабочий стол

Я пытался реализовать изменения самостоятельно, но я мог либо переместить новую папку на рабочий стол, либо переименовать ее в честь родительской папки. Когда я вставлял две инструкции (какая бы ни была вставлена ​​первой), у меня возникала ошибка, сообщающая о том, что папка не может быть найдена после выполнения первой инструкции. Вот скрипт:

tell application "Finder"
    set theTopFolder to (selection as alias)
    set theFiles to a reference to every file of (entire contents of folder theTopFolder)
    set theNewFolder to make new folder at theTopFolder with properties {name:"Flattened Files"}
    duplicate theFiles to theNewFolder
    set name of theNewFolder to name of theTopFolder
    
    
    --move theNewFolder to "Macintosh HD:Users:xx:Desktop:"
end tell

решение1

tell application "Finder"
    repeat with f in (get folders of (POSIX file "/Users/username/manga_folder" as alias))
        make new folder at desktop with properties {name:(get name of f)}
        duplicate files of entire contents of f to result
    end repeat
end tell

Вы также можете использовать такую ​​команду оболочки:

cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f|while read f;do cp "$f" ~/Desktop/"$d";done;done

Или, если у вас GNU cp:

cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f -exec gcp -t ~/Desktop/"$d" {} +;done

Связанный контент