次のようなスクリプトが存在したことを覚えています。このスクリプトでは、ディレクトリ内のすべてのファイルのファイル パスをテキスト エディターで開くことで、ディレクトリ内のファイルを移動できました。その後、テキスト エディターでファイル パスを編集し、テキスト エディターを終了すると、ファイルの名前が変更されました。
このスクリプトが見つからないようです。名前を知っている人はいますか? シェル スクリプトのコレクションの一部だったと思います。
答え1
vidir
テキスト エディターでファイル名を編集できます。エディターを選択するには、EDITOR
変数を設定します。Debian または Ubuntu ではパッケージvidir
に含まれていますmoreutils
。
vidir
できることは次のとおりです( からの抜粋man 1 vidir
):
ディレクトリを編集する場合、ディレクトリ内の各項目は、それぞれ番号の付いた行に表示されます。これらの番号は、
vidir
変更された項目を追跡する方法です。行を削除すると、ディレクトリからファイルが削除されます。ファイル名を変更するには、ファイル名を編集します。また、番号のペアを入れ替えて、ファイル名を入れ替えることもできます。
「ファイル名を編集して名前を変更する」と書かれていますが、このツールはそれ以上のことができます。パス名全体を編集することで、ファイルを他のディレクトリに移動できます。まだ存在しないディレクトリにも移動できます (vidir
ディレクトリを作成しようとします)。
編集後は、テキストファイルを保存してエディターを正常に終了する必要がありますvidir
。その後でのみ、 が機能します。vidir
ファイルを変更しなかった場合 (別の名前または別の場所に保存した場合を含む)、またはエディターが失敗して終了した場合 (つまり、終了ステータスがゼロ以外の場合)、 は何も行いません。ファイルを保存せずにエディターを終了したり、ファイルを保存した後でもエディターを失敗させたりすることは、 (例) は中止する方法です。
どこかにタブまたは改行文字を含むパス名があり、これによって何かが壊れるのではないかと心配しvidir
ているなら、落ち着いてください。私の知る限り、vidir
そもそもそのようなパス名では動作しません。
例:
-
現在の作業ディレクトリの内容に対して動作しますが、サブディレクトリには動作しません。vidir
-
選択したディレクトリの内容に対して動作しますが、サブディレクトリには動作しません。vidir /chosen/directory
-
展開したものに作用しますvidir *.mp3
*.mp3
。一致しない場合は奇妙な結果になることがあります。この答え。 -
によって提供されるパス名に作用し、find . -type f | vidir -
find
一般的に非常に強力なツールです(「理論」を参照)。私のこの答え)。デフォルトではfind
サブディレクトリに降りることに注意してください。 -
のように動作しEDITOR=kate vidir …
vidir …
、kate
エディターとして使用します。