find 명령은 현재 작업 디렉토리를 첫 번째 출력으로 반환합니다.

find 명령은 현재 작업 디렉토리를 첫 번째 출력으로 반환합니다.

find파일 이름은 같지만 내용이 다른 여러 디렉터리 로 작업하고 있습니다 . 그런 다음 숫자 파일 이름이 있는 디렉터리에 복사합니다.

내가 직면하고 있는 문제는 find명령이 명령과 다른 순서로 폴더를 읽는다는 것입니다 ls. 새 파일을 원래 디렉터리와 연결하기 어렵게 만듭니다.

find내 해결책은 원래 디렉토리에서 동일한 명령을 실행하여 동일한 순서로 번호가 매겨지도록 하는 것이었습니다.

#!/bin/sh

find . -maxdepth 1 -type d | sed 's#./##' > rename.list
j=1
while read -r line
do
    mv ./"$line" ./"$j"_"$line"
    j=$(( $j + 1))
done < rename.list

이렇게 하면 문제가 거의 해결되지만 find어떤 이유에서인지 명령은 현재 작업 디렉터리를 첫 번째 출력으로 나열하여 번호 매기기를 1씩 오프셋합니다.

$ find . -maxdepth 1 -type d | sed 's#./##'
.
dir2
dir1
dir3

그러나 내가 실행한 첫 번째 명령 find에서는 동일한 문제가 발생하지 않았습니다 .

find . -wholename "*__substg1.0_007D001E*" -wholename "*attach_version*" -type d > header_files.txt

답변1

출력에서 현재 디렉토리를 제외하려면 옵션을 ie로 설정 하십시오 -mindepth( ) .1-mindepth 1.find

find . -maxdepth 1 -mindepth 1 -type d

관련 정보