현재 디렉토리의 모든 inode를 나열하고 싶습니다.일반 파일(즉, 디렉토리, 링크, 특수 파일이 아님) ls -la
( ll
) 표시가 있습니다.
man ls
검색을 해보니 type
이 점에 관해 잘 이해가 안 되는 내용만 발견했습니다.
--표시자 스타일=WORD
항목 이름에 WORD 스타일 표시기를 추가합니다: 없음(기본값), 슬래시(-p), 파일 유형(--file-type), 범주(-F)
일반 파일만 나열하려면 어떻게 해야 합니까 ls -la
( ll
Ubuntu 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 {} \;
먼저 검색하려는 디렉토리로 변경해야 합니다.