\uFFFD(65533) 文字を含む多くのディレクトリがあります。問題は、この文字が実際にこのディレクトリにアクセスできないことです。
Foo�o
たとえば、(� == \uFFFD
)というディレクトリがあります。
ls Foo�o
うまくいきません(だからtab常に可能な唯一のファイルを表示しますが、うまくいかないので完了しません)ls Foo*
職場で
問題は、同じ文字で始まる別のディレクトリがある可能性があるため、2.メソッドを使用できないことです。したがって、実際の質問は、そのようなキャラクターを脱出する方法があるかどうかです。
だから私はこれの動作バージョンを探しています:ls Foo\uFFFDo
<=動作しません
答え1
内部コンプリートに依存できない、または依存したくない場合は、使用しているシェルに応じて文字を正しくエスケープする必要があります。たとえば、Bashの正しいエスケープ方法は次のとおりです。
$ ls $'Foo\uFFFDo'
Foo�o
シェルのマニュアルページの引用セクションを参照してください。
答え2
次のコマンドを実行してみてください。
$ find Foo* -ls