오늘 이상한 일이 일어났습니다.
나는 퍼티를 사용하여 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
, 특수 문자를 "?"로 표시합니다. 또는 -b
8진수 코드를 표시합니다.
또 다른 옵션은 입니다 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 <<<'{}'" \;
아마 더 잘 지을 수도 있을 것 같아요. 가르쳐;)