터미널에서 이름에 특수 문자가 포함된 파일 식별

터미널에서 이름에 특수 문자가 포함된 파일 식별

오늘 이상한 일이 일어났습니다.
나는 퍼티를 사용하여 HP 서버에 연결했고 정확히 같은 이름을 가진 두 개의 파일을 보았습니다.

-rw-r--r-- 1 hemantj 3368 4월 1일 12:47에 테스트됨
-rw-r--r-- 1 hemantj 9월 20일 12:47에 테스트됨

같은 이름의 파일을 가질 수 없기 때문에 이것은 이상합니다.

나중에 FileZilla를 연결했을 때
두 번째 파일 이름 끝에 특수 문자가 있는 것을 발견했습니다.

내 질문: 터미널에서 파일 이름의 특수 문자를 강조 표시할 수 있습니까?

저는 HP-UX에 연결되어 있고 쉘은 tcsh와 ksh입니다.

편집하다:

모든 답변에 감사드립니다. 하지만 제 생각에는카몬~의해결책가장 간단하고 휴대성이 뛰어납니다.
모두 +1 - 답변을 통해 많은 것을 배웠습니다.

답변1

HP-UX를 사용하고 있다는 사실이 진짜 문제입니다. GNU 도구는 대부분의 Linux 배포판에서 사용할 수 있으며 다양한 옵션이 있습니다.

ls -q, 특수 문자를 "?"로 표시합니다. 또는 -b8진수 코드를 표시합니다.

또 다른 옵션은 입니다 ls | cat -v.

또한 find . -type f -ls기본적으로 이스케이프 코드가 표시됩니다.

이 중 일부는 HP-UX에서 작동할 수도 있지만 잘 모르겠습니다.

답변2

나는 이것을 사용합니다 :

ls -l | less 

답변3

당신이 OD를 가질 만큼 운이 좋다면,

ls -1 | od -xC

ls -1개행 문자로 구분하여 파일 이름을 인쇄합니다. od -xC각 옥텟 아래에 인식된 ASCII 문자가 포함된 16진수로 입력 텍스트를 인쇄합니다.

1, 2, 3이라는 세 개의 파일에 대한 출력 예:

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

1 및 '\n2'라는 두 파일에 대한 출력 예:

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

두 파일 모두 3개의 개행 문자를 가지며 사전순으로 "\n2"는 "1" 앞에 옵니다.

답변4

이는 실제로 강조 표시되지는 않지만 문자를 식별하는 데 도움이 될 수 있습니다.

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

아마 더 잘 지을 수도 있을 것 같아요. 가르쳐;)

관련 정보