web-dev-qa-db-ja.com

ターミナルで名前に特殊文字が含まれるファイルを識別する

今日、何か奇妙なことが起こった。
PuTTYを使用してHPサーバーに接続し、まったく同じ名前の2つのファイルを確認しました。

-rw-r--r-- 1 hemantj 33684月1日12:47テスト
-rw-r--r--1 hemantj 20 Sep 112:47テスト

同じ名前のファイルを持てないのはとても不思議でした。

後でFileZillaに接続したときに、特別なものがあることに気づきました。
2番目のファイル名の末尾の文字。

私の質問:端末のファイル名で特殊文字を強調表示することは可能ですか?

HP-UXに接続していて、シェルはtcshとkshです。

編集:

返信ありがとうございますが、 Keymon 's solution が最もシンプルで移植性が高いと思います。
すべての人に+ 1-私はあなたの回答から多くを学びました

2
Hemant

私はこれを使用します:

ls -l | less 
4
Keymon

HP-UXを使用しているという事実は本当に問題です。ほとんどのLinuxディストリビューションで利用可能なGNUツール)には、いくつかのオプションがあります。

有る ls -q、特殊文字を「?」として表示します。または-b代わりに8進コードを表示します。

別のオプションはls | cat -v

またfind . -type f -ls、デフォルトでエスケープコードを使用して表示されます。

それらのいくつかはHP-UXで動作するかもしれませんが、私にはわかりません。

5
mpe

あなたがodを持っているのに十分幸運であるならば、

ls -1 | od -xC

ls -1ファイル名を改行で区切って出力します。 od -xCは、入力テキストを16進数で出力し、認識可能なASCII文字を各オクテットの下に表示します。

1、2、3という名前の3つのファイルのサンプル出力。

0000000    310a    320a    330a
           1  \n   2  \n   3  \n
0000006

1および '\ n2'という名前の2つのファイルの出力例:

0000000    0a32    0a31    0a00
          \n   2  \n   1  \n
0000005

2つのファイルに3つの改行があり、字句的には「\ n2」が「1」の前にソートされていることに注意してください。

2
jmtd

これは実際の強調表示ではありませんが、文字を識別するのに役立つ場合があります。

# find . -type f -exec sh -c "hexdump -C <<<'{}'" \;

それはより良く構築されるかもしれません。教えて ;)

1
krissi