폴더 또는 서브 파일이 아닌 한 폴더의 모든 파일을 나열하려면 어떻게해야합니까? 즉, 파일 만 나열하려면 어떻게해야합니까?
답변
사용 find
:
find . -maxdepth 1 -type f
이 -maxdepth 1
옵션을 사용하면 현재 디렉토리 (또는를 .
일부 경로로 바꾸면 해당 디렉토리) 만 볼 수 있습니다. 해당 및 하위 디렉토리에있는 모든 파일의 전체 재귀 목록을 원하면 해당 옵션을 제거하십시오.
답변
ls -p | grep -v /
ls -p를 사용하면 제거 할 태그 역할을하는 폴더 이름 뒤에 /를 표시 할 수 있습니다.
답변
-
carlpett의
find
기반 답변 (find . -maxdepth 1 -type f
)은 원칙적으로 작동하지만 다음을 사용하는 것과 완전히 동일하지는 않습니다ls
. 모든 접두사가 붙은 잠재적으로 정렬되지 않은 파일 이름 목록 을 얻고 의 많은 옵션 을 적용 할 수있는 기능을 잃게됩니다./
ls
.
또한find
항상 숨겨진 항목도 찾는 반면ls
‘동작은-a
또는-A
옵션의 유무에 따라 달라집니다 .-
개선 제안, 알렉스 홀 질문에 단 댓글에서는 것입니다 결합 쉘 대체 (globbing)을 함께
find
:find * -maxdepth 0 -type f # find -L * ... includes symlinks to files
- 그러나 이것은 접두사 문제를 해결하고 알파벳순으로 정렬 된 출력 을 제공하지만 여전히 숨겨진 항목의 포함을 (인라인) 제어 할 수 없으며
ls
다른 많은 정렬 / 출력 형식 옵션에 액세스 할 수 없습니다 .
- 그러나 이것은 접두사 문제를 해결하고 알파벳순으로 정렬 된 출력 을 제공하지만 여전히 숨겨진 항목의 포함을 (인라인) 제어 할 수 없으며
-
-
Hans Roggeman의
ls
+grep
대답 은 실용적이지만 long (-l
) 출력 형식 을 사용하도록 잠급니다 .
내가 쓴 이러한 한계를 해결하기 위해 fls
( f를 iltering LS 유틸리티) ,
- 출력 유연성을
ls
제공하는 동시에 유형 필터링 기능 을 제공하는 유틸리티 , - 파일, 디렉토리 및 심볼릭 링크 와 같은 유형 필터링 문자 를 인수 목록 앞에 배치하기 만하면됩니다 (실행 하거나 자세히 알아보기).
f
d
l
ls
fls --help
fls --man
예 :
fls f # list all files in current dir.
fls d -tA ~ # list dirs. in home dir., including hidden ones, most recent first
fls f^l /usr/local/bin/c* # List matches that are files, but not (^) symlinks (l)
설치
지원되는 플랫폼
- npm 레지스트리 에서 설치하는 경우 : Linux 및 macOS
- 수동 설치시 : Bash를 사용 하는 모든 유닉스 계열 플랫폼
로부터 NPM 레지스트리
참고 : Node.js를 사용하지 않더라도 패키지 관리자 npm
인은 여러 플랫폼에서 작동하며 설치가 쉽습니다. 시험
curl -L https://git.io/n-install | bash
와 Node.js를가 설치되어 다음과 같이 설치합니다 :
[sudo] npm install fls -g
참고 :
-
필요한지 여부는
sudo
Node.js / io.js를 설치 한 방법과 나중에 권한을 변경 했는지 여부에 따라 다릅니다 . 당신이 얻을 경우EACCES
오류를 다시 시도하십시오sudo
. -
는
-g
보장 글로벌 설치를 넣어하는 데 필요한fls
시스템의에$PATH
.
수동 설치
- 다운로드 이
bash
스크립트 등을fls
. - 와 그것을 실행합니다
chmod +x fls
. - (macOS) 또는 (Linux)
$PATH
와 같은 에서 폴더로 이동하거나 심볼릭 링크합니다 ./usr/local/bin
/usr/bin
답변
하위 디렉터리없이 일부 디렉터리의 내용 나열
ls
샘플을 위해 옵션을 사용하는 것을 좋아합니다 .
-l
긴 목록 형식 사용-t
수정 시간별로 정렬, 최신 항목부터-r
정렬하는 동안 역순-F
, 항목에--classify
표시기 (* / => @ | 중 하나 ) 추가-h
,--human-readable
-l 및 -s와 함께 1K 234M 2G 등과 같은 인쇄 크기 …
언젠가 --color
다른 모든. (참조 ls --help
)
폴더를 제외한 모든 항목 나열
파일, 심볼릭 링크, 장치, 파이프, 소켓 등이 표시됩니다.
그래서
find /some/path -maxdepth 1 ! -type d
날짜별로 쉽게 정렬 할 수 있습니다.
find /some/path -maxdepth 1 ! -type d -exec ls -hltrF {} +
파일 만 나열 :
또는
find /some/path -maxdepth 1 -type f
크기별로 정렬 :
find /some/path -maxdepth 1 -type f -exec ls -lSF --color {} +
숨겨진 항목 나열 방지 :
이름이 점으로 시작하는 숨겨진 항목을 표시하지 않으려면 다음을 추가 할 수 있습니다 ! -name '.*'
.
find /some/path -maxdepth 1 ! -type d ! -name '.*' -exec ls -hltrF {} +
그때
당신은 대체 할 수있는 /some/path
가 .
에 대한 목록 현재 디렉토리 나 ..
에 대한 상위 디렉토리 .
답변
당신은 또한 사용할 수 ls
와 함께 grep
또는 egrep
및 별칭으로 프로필에 넣어 :
ls -l | egrep -v '^d'
ls -l | grep -v '^d'
답변
파일 찾기 : ls -l / home | grep “^-“| tr -s ”| 잘라 내기 -d ”-f 9
디렉토리 찾기 : ls -l / home | grep “^ d”| tr -s ”| 컷 -d ”-f 9
링크 찾기 : ls -l / home | grep “^ l”| tr -s ”| 잘라 내기 -d ”-f 9
tr -s ”는 출력을 공백으로 구분 된 파일로 변환합니다. cut 명령은 구분자가 공백이라고 말하고 9 번째 필드 (항상 파일 이름 / 디렉토리 이름 / 링크 이름)를 반환합니다.
나는 이것을 항상 사용한다!
답변
{ find . -maxdepth 1 -type f | xargs ls -1t | less; }
xargs
작동하도록 추가 되었으며 추가 정보 없이 파일 이름 만 표시 하는 -1
대신 사용-l
ls