BashでUnicodeファイル名を選択


9

OK; 私がBashにいて、フォルダにいくつかのファイルがあるとします。それらのいくつかはと名付けられfile☠☡☢☣.txt☠☡☢☣クレイジーでタイプ不可のユニコード文字で始まります。それらの1つをどのように参照しますか?タブを押すとfile、にのみオートコンプリートされ、その後、クレイジーな文字を入力するよう求められます。「あなたが私に与えたリストの3番目のものを選択してください」とbashに伝える方法はありますか?

回答:


9

それを回避し、Shift+ などの別のタイプのキーバインドをreadlineで使用することをお勧めしますTAB。次のものをに追加します~/.inputrc

"\e[Z": menu-complete

次にを発行しますexec bash(これにより、の設定が読み込まれます~/.inputrc)。1回限りの場合、bashを再起動する代わりに、を実行して同じバインディングを設定できますbind '"\e[Z": menu-complete'

これで、繰り返しShiftTABシーケンスを使用して、一致するファイル名を循環できるようになります(次の一致する文字を入力する必要はありません)。これは、発行されたすべてのコマンドで機能します(ShiftTABシーケンスにバインドされている標準の読み取り行コマンドであるため)。OPで述べたように、これはTABキーの標準的な動作には影響せず、ShiftTABコンボの機能を追加するだけ です。


の使用について言及するために編集しました。これは、exec bashそれを機能させるための非常に重要なステップであるためです。;)
Drav Sloan 2013

ありがとう!不思議に思う人にとっては、これは通常の機能を変更するようには見えません。Shift-Tabキーのコンボを追加するだけです。
Erhannis 2013

正解です。タブキーはそのままにしておいてください。:)それが変わったとしたら私は気が動転します:D
Drav Sloan 2013

3

時々機能する別の方法は、ワイルドカードを使用?または*グロブし、タブ補完との一意の一致が得られるまで、残りの「もの」の一部を入力することです。


2

を含むディレクトリに移動し、file☠☡☢☣.txtと入力しls -iます。次の行が表示されます。

xxxxx file☠☡☢☣.txt

どこxxxxxのインデックス番号ですfile☠☡☢☣.txt。入る:

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

ここxxxxxで、前の行は前述のインデックス番号ls -iです。これはに名前が変更さfile☠☡☢☣.txtbettername.txtます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.