ディレクトリ名の\uFFFD文字

ディレクトリ名の\uFFFD文字

\uFFFD(65533) 文字を含む多くのディレクトリがあります。問題は、この文字が実際にこのディレクトリにアクセスできないことです。

Foo�oたとえば、(� == \uFFFD)というディレクトリがあります。

  1. ls Foo�oうまくいきません(だからtab常に可能な唯一のファイルを表示しますが、うまくいかないので完了しません)
  2. ls Foo*職場で

問題は、同じ文字で始まる別のディレクトリがある可能性があるため、2.メソッドを使用できないことです。したがって、実際の質問は、そのようなキャラクターを脱出する方法があるかどうかです。

だから私はこれの動作バージョンを探しています:ls Foo\uFFFDo<=動作しません

答え1

内部コンプリートに依存できない、または依存したくない場合は、使用しているシェルに応じて文字を正しくエスケープする必要があります。たとえば、Bashの正しいエスケープ方法は次のとおりです。

$ ls $'Foo\uFFFDo'
Foo�o

シェルのマニュアルページの引用セクションを参照してください。

答え2

次のコマンドを実行してみてください。

$ find Foo* -ls

関連情報