BashでUnicodeファイル名を選択する

BashでUnicodeファイル名を選択する

いいですね。私がBashにあり、フォルダにいくつかのファイルがあるとしましょう。それらのいくつかは、入力できない奇妙なUnicode文字で始まり、名前が付けられfile☠☡☢☣.txtました。☠☡☢☣これらのいずれかをどのように言及しますか? Tabキーを押すとオートコンプリートされ、file奇妙な文字を入力するように求められます。 bashに「あなたが提供したリストから3番目の項目を選択してください」と言う方法はありますか?

答え1

Shiftこの問題を解決し、+などのreadlineで他の種類のキーバインディングを使用することをお勧めしますTAB。以下を次の項目に追加します~/.inputrc

"\e[Z": menu-complete

その後、発行してくださいexec bash(設定を読む必要があります~/.inputrc)。ワンタイムでbashを再起動するのではなく、実行して同じバインディングを設定できますbind '"\e[Z": menu-complete'

ShiftTABこれで、繰り返しシーケンスを使用して一致するファイル名を繰り返すことができます(次の一致文字を入力する必要はありません)。これは実行されたすべてのコマンドに適用されます(シーケンスにバインドされている標準の読み出しラインコマンドであるためShiftTAB)。 OPが指摘したように、これはキーの標準動作に影響を与えず、組み合わせにTAB機能を追加するだけです ShiftTAB

答え2

?時々動作するもう1つの方法は、ワイルドカードまたはワイルドカードを使用して、*タブの完成と一意に一致するものが得られるまで、残りの「アイテム」を入力することです。

答え3

含まれているディレクトリに移動して、次の行をfile☠☡☢☣.txt入力しますls -i

xxxxx file☠☡☢☣.txt

xxxxxインデックス番号はどこにありますかfile☠☡☢☣.txt?入力する:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

ここで、xxxxx前の行はで得られた上記のインデックス番号ですls -ifile☠☡☢☣.txtに名前が変更されましたbettername.txt

関連情報