я в общей сложности нуб, но я понял, этот скрипт для выполнения следующих действий:Баш файл оптимизации сценария переименования
У меня есть папка под названием «UnRAR» в есть вложенные папки с неизвестным FOLDERNAME с RAR файла внутри. Теперь я вхожу в unknownsubfolder, нахожу rar-файл и разворачиваю его в unknownsubfolder. После этого я нахожу новый файл и переименовываю его с именем unknownsubfolder. Теперь я хватаю файл и перемещаю его в ./unrar.
#!/bin/bash
cd /home/user/unrar/
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.rar" -execdir unrar e -r '{}' \;); done
echo "$(tput setaf 2)-> unrar done!$(tput sgr0)"
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.mkv" -exec mv '{}' "${PWD##*\/}.mkv" \;); done
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.mp4" -exec mv '{}' "${PWD##*\/}.mp4" \;); done
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.avi" -exec mv '{}' "${PWD##*\/}.avi" \;); done
cd /home/user/unrar
find -name "*.mkv" -exec mv '{}' /home/user/unrar \;
find -name "*.mp4" -exec mv '{}' /home/user/unrar \;
find -name "*.avi" -exec mv '{}' /home/user/unrar \;
Это прекрасно работает с большинством файлов, но в некоторых случаях это не
Я хочу найти * .rar в ОДН и UnRAR него. новый файл. (.mkv | .avi | .mp4) должен быть переименован в DIR (.mkv | .avi | .mp4) и перенесен в ./unrar
Это моя филеструктура.
./unrar/
- unknownsubfolder/
-file.rar
-file.r00
-....
- unknownsubfolder1/
- s01/
- file.rar
- file.r00
- ....
- s02/
- file.rar
- file.r00
- ....
- ....
Если case1, UnRAR "/unknownsubfolder/file.rar" и получить "x.mkv". файл переименован из "x.mkv" до "unknwonsubfolder.mkv" и переехал в "./unrar/unknownsubfolder.mkv" (то же самое с * .avi + * .mp4) == Perfekt
если Случай 2, в моем сценарии unknownsubfolder/s01/file.rar будет неровным, но не переименован в s01.mkv, установленный unknwonsubfolder1.mkv. (если есть больше, как s02, S03, S04 ...) я всегда в конечном итоге с одним unknownsubfolder.mkv файлом в ./unrar) == неправильно выходной
Так я думаю, у меня есть 3 вопроса
Как получить правильное имя DIR для переименования файла? Или как я могу ввести unknownsubfolder/s01 ....?
Есть ли способ исключить слово из поиска? иногда «unknownsubfolder» содержит другую папку + файл с именем «sample (.mkv | .avi | .mp4)». Я хотел бы исключить это, чтобы исходный файл не был перезаписан образцом. иногда бывает.
Я уверен, что могу комбинировать некоторые из кода, чтобы сделать его еще короче. Может ли кто-нибудь объяснить, как это сделать? Итак, как я объединять mkv, avi и mp4 в одной строке.
С уважением, Wombat
(EDIT: для лучшего понимания)
Правильно ли я понимаю, что в проблемном случае у вас есть 30 подпапок внутри неизвестной папки вместо одного rar-файла? Как вы его сформулировали, можно подумать, что это всего лишь одна папка с именем 'subfolder1-30'. Все эти подпапки все еще содержат только один файл rar? – nautical
Право, unknownsubfolder содержит до 30 дополнительных подпапок, каждый из которых содержит сжатый видеоролик в rar. – wombat