文字は国際的な文字である可能性が高いため、en_US文字セットでは制御コードとして表示される可能性が高く、これがlsが疑問符として表示している理由です。
これは、グローバルプロファイルでデフォルトでディストリビューションがエイリアスlsを選択したことが原因である可能性があります。例えば:
alias ls='ls -q'
シェルに次のように入力して、ディストリビューションが完了しているかどうかを確認できます。
alias ls
次のようなものが出力されます:
$ alias ls
alias ls='ls --color=auto'
以下のリンク先のページでは、「ls -b」を実行すると、8進数の制御コードが表示されるため、少なくとも使用されている文字がわかります。
http://www.arsc.edu/arsc/support/howtos/nonprintingchars/
それがうまくいかないと仮定すると、下部にある別のオプションもあります:
今まで気付いていなかったOctalDumpと呼ばれるツール(Debian-/ usr / bin / od)
$ ls | od -b
制御コードの8進形式を表示します。
$ ls | od -c
最後にある可能性のある非表示の追加の空白を含む文字を表示します(例の最後にある余分なスペースに注意してください)
制御文字が機能していること、および追加の非表示の空白があるかどうかがわかったら、制御文字をエスケープすることにより、ディレクトリにcdする方法を簡単に見つけることができます。失敗した場合、ディレクトリの名前を変更するためのいくつかのオプションがあります。
上記のページには、便利なことに、スペースをエスケープするか、疑問符をエスケープしない限り、mvコマンドを介して制御文字を削除するための迅速でダーティな方法があります(したがって、単一文字にすること)ワイルドカード)、およびこの不正なディレクトリがあるディレクトリに他に何も存在しない限り。これらの明示的な要件の理由は、ワイルドカード文字と単一のスペースのみを使用しているため、ワイルドカードが他のファイルやディレクトリと誤って一致しないようにするためです。
上記の方法が機能しない場合は、別の方法で、他の応答で言及されているfindメソッドをほぼ確実に使用できます。iノード番号を使用してディレクトリにcdしようとするのではなく、iノード番号を使用して試したのではなく、iノード番号を使用して名前を変更できます。上記のページから、その1つのコマンドの3行のセット全体をコピーしてください(ただし、「desired-name」の部分を、名前を変更する実際の名前に置き換えます)。
ディレクトリの名前が変更されると、そのディレクトリにアクセスできるようになります。名前に制御コードが含まれているファイルも含まれていないことを願うだけです。そうしないと、名前を変更したディレクトリ内のすべてのファイル(および/またはサブディレクトリ)をリンスして繰り返す必要があり、その時点でforループはおそらく、1からインクリメントして、すべてのファイルに番号を付けるだけの方が賢明です。:-)
cd */
うまくいくかもしれません。*
シェルが理解できるディレクトリの説明を展開し、cd
余分な引数を無視します。別の方法は、グラフィカルファイルマネージャー(端末ベースのMCを含む)またはVimなどの組み込みのファイルツリーナビゲーターを使用することです。直接cd`-exec
への切り替えfind, not with
(これはシェルに組み込まれています)を試すこともできますが、egls
や他のツールを使用します。