m/n/o/p/q/r/s/t 디렉토리 구조가 있습니다.
이름 "r"과 일치하는 디렉터리를 찾고 검색 결과의 상위 디렉터리에서 내용을 재귀적으로 복사하고 싶습니다(예: 이 예에서는 "q/r/s/t" - 'cp - rq/r을 사용하여 얻을 수 있는 작업). <dir_location >')을 다른 위치로 이동합니다.
그것은 다음과 같습니다:
find m/n/o/p -type d -name "r" -exec cp -r "../{}" /<folder_to_copy_into> \;
-printf %h 및 -maxlength로 실험을 시도했지만 구문이 올바른지 확실하지 않습니다. 내가 원하는 결과를 얻기 위해 또 다른 발견을 해야 할지 잘 모르겠습니다. (목표는 찾기 결과의 하나의 상위 디렉토리에서 다른 디렉토리 위치로 반복적으로 복사하는 것입니다.)
"r"이라는 디렉터리를 찾을 수 있는 한 r의 상위 디렉터리에서 새 디렉터리 위치로 모든 것을 재귀적으로 복사하고 싶습니다. (예: m/n/o/p/q/r/s/t가 있는 경우 "q/r/s/t"를 새 디렉터리 위치에 반복적으로 복사하고 싶습니다.)
답변1
Bash 명령 문자열을 다음으로 바꿀 수 있습니다 -exec
.
.... -exec bash -c 'cp -r $(dirname $0) /target/' '{}' \;
@KamilMaciorowski의 의견을 고려하십시오. 추출하려는 내용이 약간 불분명합니다. 따라서 d1
이와 같은 디렉토리 구조에서 검색하면
└ a
└ b
├ c1
│ └ d1
│ └ d2
│ └ d3
├ c2
└ c3
위의 내용 c1
은 .d2
d3
d1
답변2
이것은 나에게 효과적입니다.
find m/n/o/p -mindepth 1 -maxdepth 1 -type d -exec [ -d {}/r ] ';' -exec cp -r {} <folder_to_copy_into> \;)