다음과 같은 것이 내가 추구하는 것입니다.하지만 탈출 {}
과 방법에 관계없이 코드가 작동하지 않습니다.+
;
find ./ -maxdepth 1 -type d -name '.*' -exec \
find {} -maxdepth 1 -type f -name '*.ini' -exec \
md5sum \{\} \\; \;
이보고 후 & - - 유닉스 리눅스 질문에 , 나는 다음과 같은 코드가 작동 발견,하지만 중첩되지 않습니다 발견 과 같은, 나는이 특별한 일을 할 수있는 더 좋은 방법이 생각한다.
find ./ -maxdepth 1 -type d -name '.*' \
-exec bash -c 'for x; do
find "$x" -maxdepth 1 -type f -name "*.ini" \
-exec md5sum \{\} \;; \
done' _ {} \+
find -exec
엉뚱한 따옴표와 이스케이프 제약 조건으로 쉘을 호출 할 필요없이 중첩 할 수있는 방법이 있습니까?
아니면 많은 매개 변수를 혼합하여 단일 찾기 명령으로 직접 수행 할 수 있습니까?
find
있지만, 경우 find
이 작업을 수행 할 수 없습니다, 다음 왜 find
그렇게 존경 (?) 도구 -로 파일을 찾는 데 사용할 수 있습니까? ... 나는 find ./ -maxdepth 2 -path '.*/*.ini' -type f -exec md5sum {} \+
내 상황에서 잘 작동 한다는 것을 아는 것으로 나타났습니다 (jw013의 참조가 -prune
맨 페이지에서 이를 이끌어 냈습니다). 필자는 거의 모든 필요한 작업을 수행 한 find
것처럼 (1 년 미만의 Linux) 실제로 사용한 적이 없으므로 locate
알 수없는 영역입니다.
-path
시험은 내가 제안가는 정확히 것입니다. 이것으로, 당신은 당신이 원하는 모든 것을 할 수 있어야 합니다. (Ace Of Base 협회에 유감입니다))