일반 파일만 나열

일반 파일만 나열

현재 디렉토리의 모든 inode를 나열하고 싶습니다.일반 파일(즉, 디렉토리, 링크, 특수 파일이 아님) ls -la( ll) 표시가 있습니다.

man ls검색을 해보니 type이 점에 관해 잘 이해가 안 되는 내용만 발견했습니다.

--표시자 스타일=WORD

항목 이름에 WORD 스타일 표시기를 추가합니다: 없음(기본값), 슬래시(-p), 파일 유형(--file-type), 범주(-F)

일반 파일만 나열하려면 어떻게 해야 합니까 ls -la( llUbuntu 18.04의 바로가기)?

답변1

find . -maxdepth 1 -type f -ls

이렇게 하면 현재 디렉터리에 있는 것과 유사한 형식으로 일반 파일이 제공됩니다 (그러나 명령줄 ls -lisa덕분에 일반 파일만 표시됨 ).-type -f

-ls(BSD에 의해 도입됨) 및 -maxdepth(GNU에 의해 도입됨 ) 은 find비표준(현재는 일반적이지만) 확장입니다. POSIXly에서는 다음과 같이 작성할 수 있습니다.

find . ! -name . -prune -type f -exec ls -ldi {} +

(이것은 또한 파일 목록을 정렬하는 이점이 있지만 현재 디렉터리에 많은 수의 파일이 있는 경우 큰 독립 청크로 정렬될 수 있습니다.)

답변2

ls이를 수행할 수 있는 옵션은 없으며 일반 파일을 필터링하기 위해 출력을 구문 분석해서는 안 됩니다.

find사용할 수 있다대신 일반 파일을 찾아서 나열하십시오 ls. 또 다른 옵션은 Zsh와 그 파일을 사용하는 것입니다.글로벌 예선:

ls -l -- *(D.)

이름이 점으로 시작하는 파일을 포함하여 모든 일반 파일을 나열합니다.

답변3

-a를 사용하면 숨겨진 파일과 폴더가 모두 표시됩니다. ls 대신 find 명령을 사용할 수도 있습니다. 이렇게 하면 시작됩니다.

find -type f -exec ls -la {} \;

먼저 검색하려는 디렉토리로 변경해야 합니다.

관련 정보