ファイルマネージャを使用しているかのように、端末で対話形式でファイル名を編集するにはどうすればよいですか?

ファイルマネージャを使用しているかのように、端末で対話形式でファイル名を編集するにはどうすればよいですか?

コマンドラインで完全な新しい名前を次のように指定してファイルの名前を変更できます。mv

mv oldname newname

あるいは、正規表現やPerlfile-renameコマンドなどを使用してください。

rename -d 's/old/new/' oldname

しかし、ファイルマネージャでファイル名を変更できるように、手動でカーソルを移動してファイルのビットを変更して対話形式でファイル名を変更できますか?

ファイルマネージャの名前変更

答え1

使用その他のユーティリティvidir

vidir oldname

ファイルパスが開きます$EDITOR(テキストベースのエディタまたはグラフィックエディタなどcodium -w)。例えばnano:

ビデルとナノ

vidir主なユースケースは一度に多くのファイルの名前を変更することで、必要なだけ多くのファイルを提供できます。

vidir mydir/*

答え2

これは次のスクリプトで実行できます。

#! /bin/zsh -
zmodload zsh/system
ret=0
for old do
  new=$old
  ERRNO=0
  if [[ ! -e $old && ! -L $old ]]; then
    syserror -p "$old: "
  elif
    vared -p "Renaming $old:q to: " new &&
      [[ -n $new && $old != $new ]]
  then
    mv -iv -- "$old" "$new" || ret=$?
  fi
done
exit $ret

ターゲットファイル($newあなたが編集しましたvared)が次の種類のファイルになる場合に注意してください。目次(またはディレクトリへのシンボリックリンク)通常どおりにソース()ファイルをmv移動しようとします。$old入力するそれ。 GNUを使用すると、ファイル名をそのファイルに置き換えるmvオプションを追加できます。-T

シェルはzsh(iable itor)と同様の操作を実行するbash必要がありますが、改行文字を含むファイル名では正しく機能しません。IFS= read -rep Prompt -i "$old" newvaredvared


1最新バージョンでは、追加で複数行のファイル名を入力できますが、新しいファイル名を受け入れるには+または+ /(ターミナルからNULを送信する組み合わせ)を-d ''押す必要があります。CtrlJCtrl@Space

答え3

軽量コマンドラインの名前変更ユーティリティ他の機能の中でも、edit次のコマンドで直接編集できます。

ここに画像の説明を入力してください。

プロジェクトホームページ:
https://github.com/fonic/infiren

依存関係:
Bash、GNUを探す

関連情報