ファイル名を現在の日付(YY-MM-DD)に自動的に変更します。

ファイル名を現在の日付(YY-MM-DD)に自動的に変更します。

YY / MM / DD形式で日付を表示するためにRaspbianでファイル名を自動的に変更できますか(mp3)?

mp3ファイルを特定のフォルダに自動的に録音し、クラウドにアップロードするようにオーディオレコーダー(外部機器)を設定しました。 Grive2経由でフォルダにXXXX125Y2G.mp3の代わりに19-09-05.mp3などのファイルが含まれるように日付名を事前に指定したいと思います。

私はLinux初心者であり、スクリプトの知識がないので、ファイル名を自動的に変更する方法がわかりません。

答え1

単一ファイルの名前を変更するには:

mv test.mp3 "rec-$(date -r test.mp3 '+%Y-%m-%d.mp3')"

タイムスタンプを使用してファイルの名前を変更しますrec-YYYY-MM-DD.mp3rec-削除できますが、ファイルの内容に関する詳細情報を提供するため、IMOはそれほど価値があります。はいただのデートではありません。あるいは、必要に応じて別のプレフィックスを使用できます。

まだ名前が変更されていないディレクトリ内のすべての.mp3ファイルの名前を変更するには、次の手順を実行します。

cd /path/to/directory
for f in *.mp3; do
  if [[ ! "$f" =~ ^rec-[0-9]{4}-[0-9]{2}-[0-9]{2}\.mp3$ ]] ; then
    mv "$f" "rec-$(date -r "$f" '+%Y-%m-%d.mp3')"
  fi
done

Test-nnnn.mp3ただし、他の.mp3ファイルの名前を変更するのをより簡単にするには、特定の固有のファイル名パターン(たとえば)を使用するように録音ソフトウェアを設定する必要があります。つまり、for f in Test-*.mp3より具体的です。for f in *.mp3または、他の目的で使用されていないディレクトリに保存してください。

答え2

録音を作成するために使用したソフトウェアと、そのソフトウェアがディレクトリにどのように配置されているかに関するいくつかの情報を使用できます。

したがって、ディレクトリを監視し、その中にある新しいファイルをアップロードするデーモンがどこかで実行され、アップロードが自動化されたように見えます。

これらすべてがサードパーティの場合は、最初にmp3ファイルを生成するソフトウェアを使用するオプションしかありません。この場合、ソフトウェアマニュアルが日付/時刻/時刻/その他の変数などのシステム変数を使用しているか、開発者が出力ファイルを決定するためのオプションに組み込んでいることを確認する必要があります。

それ以外の場合は、特定の命名パターンに従うファイルのみを認識するように、そのディレクトリ内のすべての登録ファイルをアップロードするソフトウェアを変更できることを確認できます。

inotify-tools次に、を使用してディレクトリを監視し、新しい着信ファイルの名前を変更し、mp3ファイルのメタデータタグを読み取るスクリプトを作成できますffmpeg

これが役に立つことを願っています。

関連情報