Добавление расширения к файлу с помощью команды file в linux - PullRequest
0 голосов
/ 26 июня 2019

У меня есть файл, который не имеет расширения и хотел бы добавить расширение к нему программно.Я знаю, что команда file дает информацию о расширении файла.Как я могу использовать это, чтобы добавить расширение к файлу?Файлы, которые я загружаю, можно считать изображениями (png, jpg и т.

Ответы [ 2 ]

2 голосов
/ 26 июня 2019

Как-то так должно начаться:

#!/bin/bash
for f in "$@"; do
    if [[ $f == *'.'* ]]; then continue; fi  # Naive check to make sure we don't add duplicate extensions
    ext=''
    case $(file -b "$f") in
        *ASCII*) ext='.txt' ;;
        *JPEG*)  ext='.jpg' ;;
        *PDF*)   ext='.pdf' ;;
        # etc...
        *) continue ;;
    esac
    mv "${f}" "${f}${ext}"
done

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

0 голосов
/ 26 июня 2019

Вы можете попытаться найти или создать карту типа файла с именем расширения файла, но универсального способа не существует. Подумайте об изображениях JPEG, вы можете иметь расширение .jpg или .jpeg, и они оба означают одно и то же. То же самое для видео контейнеров MP4 ...

Кроме того, в linux расширение файла даже не имеет значения для большинства программ, так что вы можете просто не заботиться об этом, но если вы все еще хотите сделать это для определенных типов файлов, вы можете проверить этот ответ: https://stackoverflow.com/a/6115923/9759362

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...