디렉토리 뒤의 슬래시 찾기를 찾으시겠습니까?


19

find 명령이 디렉토리 다음에 슬래시를 표시하도록하려면 어떻게해야합니까? 예를 들어, 내가 원하는 dir으로 표시하는 dir/대신 dir. 나는 사용하고있다find . -print

답변:


10

포터블 :

find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print

디렉토리와 파일을 개별적으로 나열하려는 경우 정렬을 통해 출력을 병합 할 수 있습니다.

{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort

GNU find를 사용하면 Shawn J. Goff의 답변을 참조하십시오 .

터미널로 출력하지 않아도 인쇄 할 수없는 문자가 엉망이 될 위험이있는 경우 ddeimeke 's answer를 참조하십시오 .

zsh에서 : print -rl -- **/*(DM)( D도트 파일 포함 M, /이후 디렉토리 추가 )


첫 번째 명령은 나를 위해 슬래시를 인쇄하지 않았지만 두 번째 명령은 슬래시를 인쇄합니다.
Steven

15
find . \( -type d -printf "%p/\n" , -type f -print \)

printf 명령을 사용하여 나머지 디렉토리 이름과 표준 인쇄 형식을 지정합니다.


찾기의 유연성에 계속 놀랐습니다.
Shawn J. Goff

1
이것은 -printfGNU find에만 해당됩니다.
Gilles 'SO- 악마 그만해'12

좋은 대답입니다. find의 위치 인수를 사용하여 이와 같은 고급 출력을 수행 하는 방법을 좋아합니다. 그러나 쉼표 주위에 공백이 없으면 작동하지 않습니다.
jimp

1
이 답변과 Gilles '를 바탕으로 다음과 같은 단순화 된 버전을 find . -type d -printf '%p/\n' -or -print
Teresa e Junior

8

아마도

find . -print0 | xargs -0 ls -Fd

옵션이기도합니다.

Solaris 매뉴얼 페이지에서 :

-F 후행 슬래시 (/), 후행보다 큰 부호 (>)가있는 문, 후행 별표 (*)가있는 실행 파일, 후행 세로 막대가있는 FIFO (|), 후행 "가있는 기호 링크를 표시합니다. at "기호 (@) 및 후행 등호 (=)가있는 AF_UNIX 주소 제품군 소켓. 피연산자로 명명 된 심볼릭 링크를 따릅니다.


@Gilles : "d"주셔서 감사합니다 ;-)
ddeimeke

이것은 시스템 콜의 양을 증가시킵니다
Paweł Polewicz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.