ファイル名からURIエンコーディングを削除する方法は?

ファイル名からURIエンコーディングを削除する方法は?

これはおそらく非常に簡単な質問であることを知っていますが、私はまだコマンドラインに初めてアクセスし、基本的なコマンドだけをマスターしました。

私が通っていた大学で、講義プレゼンテーションのいくつか(約25個ほど)をダウンロードしましたが、名前が...

L2%20Development%20of%20immune%20system.pptx
L4%20Molecular%20Recognition.pdf

ご覧のとおり、%20スペースの代わりにURLエンコードを使用してダウンロードされます。

%20私の質問は、これらすべてのファイルの名前をまとめて変更して削除し、スペースに変更する方法です。

答え1

renameDebianとその派生製品(Ubuntuを含む)では、各ファイル名にPerl式を適用することができます。

rename 's/%20/ /g' L*
        |  |  | |   |
        |  |  | |   +--- Files to match
        |  |  | +------- globally
        |  |  +--------- with space
        |  +------------ %20
        +--------------- Substitute

スペースの代わりに下線を使用することを考えてみましょう。一般的にはcli世界で生活が楽になるからです。

すべてのURIエンコーディングに一般化されています。

rename 'use URI::Escape; $_ = uri_unescape $_' *%*

答え2

使用deurlnameできるツール名の変更

$ ls
L4%20Molecular%20Recognition.pdf
$ deurlname L4%20Molecular%20Recognition.pdf
$ ls
L4 Molecular Recognition.pdf

私は書いた台本エディタでファイルの名前を変更できます。

ファイル名をスクリプトに渡すと、そのファイル名を含むエディタが開きます。次にファイル名を編集し、エディタを作成して閉じます。

$ ls
  L4%20Molecular%20Recognition.pdf
$ viname L4%20Molecular%20Recognition.pdf
  ======================
  L4%20Molecular%20Recognition.pdf█
  ======================

  ======================
  L4-Molecular-Recognition.pdf█
  ======================
  (pretend this is an editor)
$ ls
  L4-Molecular-Recognition.pdf

私も書いた台本 私が好む命名スキームと一致するようにファイル名を自動的に変更します。ファイルをダウンロードするときに最初にすることは、そのファイルに対してこのスクリプトを呼び出すことです。

$ ls
  L4%20Molecular%20Recognition.pdf
$ nf L4%20Molecular%20Recognition.pdf
  'L4%20Molecular%20Recognition.pdf' renamed to 'l4-molecular-recognition.pdf'
$ ls
  L4-molecular-recognition.pdf

そのスクリプトに注意してください。かなり劇的な名前変更が可能です。nf -nファイル名を変更する前に、テスト実行()オプションを使用してください。

答え3

convmv以下を使用できます。ファイルを含むディレクトリから:
出力が何であるかをテストするには:

convmv --unescape *%20*

実際にファイル名を変更するには、以下を追加します--notest

convmv --unescape --notest *%20*

答え4

一部のLinuxユーザーの場合は、rename次のコマンドを使用してください。最高の答え不可能。

上記のようにここ、プロジェクトの一部として提供されるPerl以外のrenameプログラムも使用できます。util-linux

Lutil-linux コマンド (次から始まるファイルの場合) と同じコマンドの構文は次のとおりです。

rename '%20' ' ' L*

関連情報