내가 이해한 바에 따르면 ls
명령은 을 호출하고 getdents
최대 x개의 디렉토리 항목을 반환합니다. 관련된 다른 시스템 호출이 있습니까? 을 실행하면 ls -l
더 많은 시스템 호출이 발생합니까? ls -l
.x가 더 비싸서 속도가 느린 지 확인하려고 합니다 ls
.
답변1
/bin/ls
출력은 일반적으로 정렬됩니다. 귀하의 "효율적인" 문제가 단지 시스템 호출인지 아니면 수행 중인 전체 작업인지는 확실하지 않지만 /bin/ls -f
아마도 최소한의 문제일 것입니다. 디렉터리 순서대로 파일 이름만 반환합니다. 정렬도 없고 메타데이터를 얻기 위한 추가 inode 조회도 없습니다 ls -l
.
또한 기본값이 색상 지정인 경우 출력 색상을 지정하는 방법을 알 수 있도록 모든 작업 ls
과 동등한 작업을 수행할 수 있습니다 .ls -l
답변2
ls -l
소유자, 그룹, 권한, 액세스 시간 등과 같은 메타데이터에 대해 파일 시스템을 쿼리해야 하기 때문에 확실히 비용이 더 많이 듭니다. 바닐라 /bin/ls
는 찾아야 해이름나열된 디렉토리의 항목 수입니다.
ls
시스템에서는 가 보다 덜 일반적인 것으로 별칭이 지정 될 수 있습니다 /bin/ls
. 실행하여 type ls
이것이 사실인지 확인하십시오.