マジックファイルでファイルタイプを検出し、それに応じてファイルサフィックスの名前を変更します。

マジックファイルでファイルタイプを検出し、それに応じてファイルサフィックスの名前を変更します。

サフィックスなしでさまざまなファイルを含むフォルダ(iPhoneバックアップ)があります。

マジックファイルデータベース(/usr/share/その他/マジックまたは人ファイル)、それに応じてファイルサフィックスを自動的に変更/名前を変更します(データベースファイル/ mime-type <->サフィックスから)。

「ファイル」、「魔法」、「名前の変更」など、関連するキーワードの一般的な性質のため、Google と StackExchange を数時間検索しても結果は表示されませんでした。助けてくれてありがとう!

ベストアンサー1

タイプ<->サフィックス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

おすすめ記事