ls -l 출력에서 ​​각 요소의 유형을 어떻게 알 수 있나요?

ls -l 출력에서 ​​각 요소의 유형을 어떻게 알 수 있나요?

내가 확인하고 있는 출력의 각 필드는 정확히 무엇입니까 ls -l? 의 예 이 게시물내 문제를 해결했습니다. 하지만 다시 각 필드가 어떤 유형인지 알고 싶습니다. 문자열은 분명합니다. 하지만 숫자는 어떻습니까? 예를 들어 10, 2048은 정수인가요, 문자열인가요? 각 필드의 유형을 확인할 수 있는 방법이 있나요?

답변1

터미널의 명령에 의해 생성된 텍스트는 텍스트 문자열입니다. 텍스트 표현으로 변환하지 않고 터미널에서 원시 바이너리 데이터를 보면 종종 "잘못된 출력"이 발생하고(예: cat압축 파일에서 실행하는 경우) 어떤 경우에는 터미널을 사용할 수 없는 상태로 둘 수도 있습니다.

출력의 숫자는 ls -l텍스트 문자열입니다.

예를 들어 C 프로그램에서 텍스트를 정수로 읽으려면 프로그램이 이를 텍스트 문자열로 읽은 다음 예를 들어 정수로 변환 하거나 올바른 형식 문자열을 strtol()사용해야 합니다.scanf()

예를 들어, 정수를 읽는 셸 도구는 awk일반적으로 도구에서 구현한 규칙에 따라 뒤에서 이 변환을 이미 수행합니다.


참고 사항: AC 프로그램은 출력의 숫자를 구문 분석해서는 안 됩니다 ls -l. stat()또는 에서 반환한 파일에서 호출해야 합니다.lstat()readdir()

관련 정보