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