답변:
당신이 사용할 수있는:
ls -d -- */
모든 디렉토리는로 끝나기 때문에 /
현재 경로의 디렉토리 만 나열합니다. -d 옵션은 디렉토리 이름이, 그 내용을하지 인쇄되도록합니다.
ls -d -- */
과 의 차이점은 무엇입니까 ls -d */
?
--
는 일반적으로 옵션의 끝을 표시하는 데 사용되므로 파일 이름이 -l
ls 인 경우 파일을 긴 목록 형식 옵션으로 해석하지 않습니다.
Stephen Martin의 응답에 경고가 표시되고 현재 폴더도 나열되었으므로 제안합니다.
find . -mindepth 1 -maxdepth 1 -type d
(이것은 Linux에 있으며 POSIX 매뉴얼 페이지에서 -maxdepth 및 -mindepth를 찾을 수 없습니다)
ls -d -- */
옵션이 마음에 find
듭니다. 때로는 유용하지만 때로는 문제를 일으킬 수도 있습니다. 이 의견이 다른 사람들에게 도움이되기를 바랍니다. +1
다니엘의 대답은 맞습니다. 그래도 유용한 추가 사항이 있습니다.
와 같은 숨겨진 폴더를 나열하지 않으려면 .git
다음을 시도하십시오.
find . -mindepth 1 -maxdepth 1 -type d \( ! -iname ".*" \)
일부 환경에서 출력 시작 부분에 끔찍한 도트 슬래시 를 바꾸 려면find
다음을 사용하십시오.
find . -mindepth 1 -maxdepth 1 -type d \( ! -iname ".*" \) | sed 's|^\./||g'
글로브 패턴 선택과 관련하여 나를 혼란스럽게하는 것을 강조하기 만하면됩니다. 당신이 이것을 가지고 있다고 말하십시오 :
$ cd /tmp
$ mkdir testglob
$ for ix in {00,01,02,03} ; do mkdir testglob/mydir_${ix} ; done
$ for ix in {00,01,02,03} ; do touch testglob/myfile_${ix} ; done
$ for ix in {00,01,02,03} ; do touch testglob/mydir_${ix}.txt ; done
$ for ix in {00,01,02,03} ; do mkdir testglob/otherdir_${ix} ; done
$ tree testglob/
testglob/
├── mydir_00
├── mydir_00.txt
├── mydir_01
├── mydir_01.txt
├── mydir_02
├── mydir_02.txt
├── mydir_03
├── mydir_03.txt
├── myfile_00
├── myfile_01
├── myfile_02
├── myfile_03
├── otherdir_00
├── otherdir_01
├── otherdir_02
└── otherdir_03
8 directories, 8 files
여기에서 mydir*
디렉토리 만 선택한다고 가정하십시오 . 종료 슬래시를 제외하면 ls -d
파일도 나열됩니다.
$ ls -d testglob/mydir* # also `ls -d -- testglob/mydir*`
testglob/mydir_00 testglob/mydir_01 testglob/mydir_02 testglob/mydir_03
testglob/mydir_00.txt testglob/mydir_01.txt testglob/mydir_02.txt testglob/mydir_03.txt
...하지만 슬래시가 있으면 디렉토리 만 나열됩니다.
$ ls -d testglob/mydir*/ # also `ls -d -- testglob/mydir*/`
testglob/mydir_00/ testglob/mydir_01/ testglob/mydir_02/ testglob/mydir_03/
printf "%s\n" */
$ PWD의 모든 디렉토리를 나열합니다.
echo */
이름이 공백이 있으면 긴 한 줄로 작동하지만 더 어려워집니다.
다음을 사용할 수도 있습니다.
du
또는:
git ls-tree -d -r --name-only @