ディレクトリ内のすべてのファイルの名前を変更する一般的な方法

ディレクトリ内のすべてのファイルの名前を変更する一般的な方法

私はこれに対して、 をfind -exec使用したり、 ls を解析したり、bash globbing を使用したりといった簡単な bash 関数を作成してきましたが、大きな問題が発生するたびに、新しい方法を試す必要がありました。あるときは引数リストが長すぎたため、またあるときは、2別のファイルの名前が に変更されたときに、すでに のような名前のファイルが上書きされたためでした2

一度はUnicodeの問題、一度はファイル名のスペース、一度はファイル名の*または&などです。そこで、ディレクトリ内のすべてのファイルを連続した名前に変更する最も効率的で堅牢な汎用的な方法を皆さんに尋ねようと思いました。何があっても!ファイル名がどれだけ長くても、元の名前が何であっても、拡張子が何であっても、非 ASCII 文字が含まれていても問題ありません。

私の要件は次のとおりです。

  1. 長いファイル名でも機能すること。
  2. Unicode 文字で動作すること。
  3. ファイルにスペースや特殊文字が含まれていても機能します。
  4. 他のファイルを上書きしないこと。
  5. できるだけ早く:D

答え1

Ubuntuがサーバーでない場合は、サーバーとして扱わないでください。UbuntuのデフォルトのリポジトリにあるpyRenamerには、正規表現のサポートなど、必要な機能がすべて備わっています。また、GUIプログラムなので、使い方を理解するのに頭を悩ませる必要はありません。正規表現を書くのに苦労している場合は、正規表現が何をするのかを次のサイトで説明できます。正規表現このようなユースケース向けに作成された GUI プログラムに対して偏見を持たないようにしてください。

pyRenamerはUbuntu 16.04以前のデフォルトのUbuntuリポジトリから入手できます。Ubuntu 18.04以降ではpyRenamerはGP名前変更

関連情報