명령 "찾기" 출력 오류 메시지

명령 "찾기" 출력 오류 메시지

"find" 명령을 실행할 때 나타나는 오류 메시지에 대해 문의하고 싶습니다. 다음 단락에서는 내가 달성하고 싶은 것이 무엇인지 설명하겠습니다.

상위 폴더가 있습니다. 이 폴더에는 많은 하위 폴더가 있습니다. 각 하위 폴더에는 여러 개의 하위 폴더가 있습니다. 특정 개수의 파일이 포함된 하위 폴더를 나열하고 싶습니다. 다음과 같이 for 루프를 실행합니다.

#!/bin/bash
in=PATH_TO_THE_PARENT_FOLDER

for i in ${in}/*; do
find ${i} -maxdepth 1 -type d -print0 | xargs -0 -I {} sh -c 'echo -e $(find {} | wc -l) {}' | sort -n | grep -w 69 | awk '{print $2}' #69 represent the total number of files within a folder
done

이 코드는 다음과 같은 오류 메시지를 출력합니다 sh: MPR_Range: No such file or directory. 그 의미에 대한 설명을 검색해 보았지만 sh: MPR_Range아무런 답도 찾을 수 없었습니다.

답변1

이라는 파일이 있다고 가정합니다 foo&bar. xargs이제 명령을 실행하겠습니다.

sh -c 'echo -e $(find foo&bar | wc -l) foo&bar' 

백그라운드에서 실행되며 echo, 및 와 유사합니다.findbarfoo;bar$(bar)

{}inargments 를 사용 하지 말고 sh -c파일 이름을 별도의 인수로 제공하십시오.

... |xargs sh -c 'echo -e $(find "$1" | wc -l) "$1"' sh {} | ...

find -exec또한 대신 다음을 사용할 수 있습니다 xargs.

find -type d -exec sh -c 'echo ...' \; 

어쨌든 특정 숫자가 있는 행을 찾으려면 sort이것이 필요한지 확실하지 않습니다 .grep

관련 정보