
Подумавши про мою портативну консоль і роми, я думав придбати SD-карту на 128 ГБ для моїх ретро-ігор. Але то є марна трата грошей і місця на карті. Бо у більшість ігор я грати не буду, а їх велика кількість тільки ускладнить пошук по ним.
Замість того, щоб запихати всі доступні ігри на свій пристрій (якщо більшість ніколи не буде відтворено), я розробив розумніший підхід. Навіщо зберігати ігри, яких я ніколи не торкнуся, коли простір для зберігання обмежений, а багато ретро-назв не застаріли?
Мій метод фільтрації
Моє рішення просте:
- Завантажте попередній перегляд відео в список відтворення VLC
- Позначте цікаві ігри
- Скопіюйте вибрані ігри до спеціальної папки
- Запустіть сценарій, щоб отримати відповідні медіафайли (зображення/відео)
Технічний виклик
Під час роботи над сценарієм bash я зіткнувся з проблемами, коли команда "find" не обробляла імена файлів, що містять пробіли. Я вирішив це, тимчасово змінивши змінну IFS (Internal Field Separator):
SAVEIFS=$IFS
IFS=$'\n'
# Отримати список файлів
FILES_LIST=$(знайти $DEST_FOLDER -maxdepth 1 \( -name '*.*' \) -type f | sed -e 's/$/\x01/' )
# Обробляти кожен файл
для шляху до файлу в $FILES_LIST
робити
# Отримати назву файлу з розширенням
FILENAME=$(базова назва -- ${filepath} | cut -d'?' -f1)
# Отримати лише назву файлу
FILENAME="${FILENAME%.*}"
process_media $FILENAME "зображення"
process_media $FILENAME "відео"
зроблено
# Відновити оригінальний IFS
IFS=$SAVEIFS
Результати варті зусиль
Такий підхід добре окупився. Наприклад, я скоротив свою колекцію GBA з 6,1 ГБ до лише 1,3 ГБ, залишивши лише ігри, у які я справді хочу грати.
Вихідний код
https://github.com/onesixromcom/easyroms_media_copy
Ресурсний кредит
Велика подяка команді ArkOS за їх чудову колекцію «easyroms». Ви можете знайти їхній архів розміром 100 ГБ на archive.org:
- https://archive.org/download/retro-arcade-v-04-rg-35-m-p
- https://archive.org/download/retro-arcade-v-04-rg-35-m-p/easyroms.7z.torrent