Intereting Posts
Почему эта замена регулярных выражений не работает? Каков наилучший способ использования набора сценариев обновления в fpm? Методы вставки содержимого первичного отбора X11? Команда PyCharm Где найти каталог .vim? Какой язык сценариев или платформа использовать для загрузки веб-страниц и взаимодействия с экраном? как отключить $ character escaping в командной строке Получить последнее сообщение фиксации, автор и хеш с помощью git ls-remote, как команда Найти варианты свопинга, которые в настоящее время используются удалить _ как префикс из нескольких файлов в каталоге в Soalris linuxbrew не может найти команду `erl` (Erlang), когда я пытаюсь установить` Elixir` на openSUSE Tumbleweed Fedora 26 и полностью квалифицированные доменные имена? Рекурсивная функция не работает chmod + бесшумный режим + как код выхода из команды 0, несмотря на ошибку Как создать обобщенный бинарный архив для SageMath?

Определить тип файла с помощью файла magic-file и переименовать файл-суффикс соответственно

У меня есть папка (iPhone Backup) с различными файлами без суффикса.

Я хочу запустить пакетный процесс над этими файлами, который определяет тип файла каждого файла (с помощью базы данных магического файла ( / usr / share / misc / magic или man file ) и автоматически изменяет / переименовывает его файл- суффикс (из суффикса файла базы данных / mime-типа <->) соответственно.

Часы Googling и StackExchange-Search не дали никаких результатов из-за общего характера вовлеченных ключевых слов «файл», «магия», «переименование» и т. Д. Помогите оценить!

Как выглядит ваш тип <-> суффикс DB? Это не так тривиально, чтобы интерпретировать вывод file . Я просто предполагаю: *, что печатается файл первого слова, достаточно * это слово является ключом в файле, где каждая строка содержит: и значение – это суффикс, который мы хотим

Для bash я бы написал функцию, которая принимает в качестве аргумента тип файла и перекликается с суффиксом:

 MISTERIOUSFILEMIMETYPETOSUFFIXDB=/path/to/key/value/file typetosuffix () { grep -E "^\s*$1:" ${MISTERIOUSFILEMIMETYPETOSUFFIXDB}| cut -d : -f 2 } 

С помощью этой функции вы можете

 for f in $(find /path/to/iphone/backup -type -f) do FILEWITHOUTSUFFIX = basename $f [ ${FILEWITHOUTSUFFIX} = ${FILEWITHOUTSUFFIX%.*} ] && continue #the file has a suffix after all TYPE=$(file $f | cut -f 2) #put type determining magic here SUFFIXITSSUPPOSEDTOHAVE=$(typetosuffix $TYPE) #fetch suffix from DB mv $f $f$SUFFIXITSSUPPOSEDTOHAVE #rename the file done