Handheld game console

Подумавши про мою портативну консоль і роми, я думав придбати SD-карту на 128 ГБ для моїх ретро-ігор. Але то є марна трата грошей і місця на карті. Бо у більшість ігор я грати не буду, а їх велика кількість тільки ускладнить пошук по ним.

Замість того, щоб запихати всі доступні ігри на свій пристрій (якщо більшість ніколи не буде відтворено), я розробив розумніший підхід. Навіщо зберігати ігри, яких я ніколи не торкнуся, коли простір для зберігання обмежений, а багато ретро-назв не застаріли?

Мій метод фільтрації

Моє рішення просте:

  1. Завантажте попередній перегляд відео в список відтворення VLC
  2. Позначте цікаві ігри
  3. Скопіюйте вибрані ігри до спеціальної папки
  4. Запустіть сценарій, щоб отримати відповідні медіафайли (зображення/відео)

Технічний виклик

Під час роботи над сценарієм 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