디렉토리 다음에 슬래시를 표시하도록 하시겠습니까?

디렉토리 다음에 슬래시를 표시하도록 하시겠습니까?

find 명령이 디렉토리 뒤에 슬래시를 표시하도록 하려면 어떻게 해야 합니까? 예를 들어 으로 대신 dir표시 하고 싶습니다 . 나는 그것을 사용하고 있다dir/dirfind . -print

답변1

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

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

답변2

가지고 다닐 수 있는:

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

디렉터리와 파일을 별도로 나열하려는 경우(정렬하여 출력을 병합할 수 있음):

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

GNU 찾기를 사용하여 다음을 참조하세요.Sean J. Goff의 답변.

터미널에 출력하지 않아도 인쇄할 수 없는 문자가 손상될 위험이 있는 경우 다음을 참조하세요.Dedymek의 답변.

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

답변3

아마도

find . -print0 | xargs -0 ls -Fd

그것은 또한 옵션입니다.

Solaris 매뉴얼 페이지에서:

-F 후행 슬래시(/)가 있는 디렉터리, 후행보다 큼 기호(>)가 있는 디렉터리, 후행 별표(*)가 있는 실행 파일, 후행 파이프(|)가 있는 FIFO 및 후행 " at 기호 링크가 있는 기호 링크를 표시합니다. " 기호(@) 및 AF_UNIX는 후행 등호(=)가 있는 패밀리 소켓을 주소 지정합니다. 피연산자라는 기호 링크를 따릅니다.

답변4

나는 후행 /를 원하지만 별표는 원하지 않습니다. -print도 생략할 수 있습니다:

find . | xargs ls -Fd | sed -e "s/*//"

관련 정보