find 명령은 ls -p와 동일합니다.

find 명령은 ls -p와 동일합니다.

필요찾다명령으로 생성된 출력은 ls -p생성된 출력과 정확히 동일합니까?

find /path/to/ -mindepth 1 -maxdepth 1 -exec basename {} \;디렉터리에 후행 슬래시가 없으므로 후행 슬래시가 있으려면 출력 폴더 이름이 필요합니다 .

예제 출력:

folder 1/
my-file-1.sh

찾다명령은 전체 경로 없이 디렉터리 내용을 나열하고 뒤에 슬래시가 있는 폴더를 나열합니다.

답변1

$ find /path/to -mindepth 1 -maxdepth 1 -exec sh -c '
     [ -d "$1" ] && printf "%s/\n" "${1##*/}" || printf "%s\n" "${1##*/}" ' _ {} \;
aDirectory/
afile

설명하다:

  • [ -d "$1" ], 이는 다음과 같은지 확인합니다.목차, 그렇다면 다음 명령을 실행하십시오 printf.

    printf "%s/\n" "${1##*/}"
    

    그렇지 않으면 다음과 같이 실행하십시오 printf.

    printf "%s\n" "${1##*/}"
    
    • ${1##*/}*: 파일/디렉터리 경로 구걸에서 시작하여 마지막 슬래시까지 모든 항목 중 가장 긴 일치 항목을 제거하여 /마지막 디렉터리/파일 이름만 생성됩니다.

답변2

적어도 GNU find를 사용하면 내장된 -printf기능을 사용할 수 있습니다.

find . -mindepth 1 -maxdepth 1 -type d -printf '%f/\n' -o -type f -printf '%f\n'

관련 정보