@Joseph R.의 대답에서 시작하여 이것이 그의 명령을 수행 할 수 없으므로 find와 함께 작동하게하는 나의 해결책입니다. (나는 적용되는 규칙으로 인해 그렇게 생각하지 않는다.\+
. : {}
요소 뒤에는 아무것도 없습니다 .)
모든 파일을 정확히 동일한 디렉토리 (여기 target/directory
)에 복사하려면 다음을 수행하십시오 .
find directory/to/copy -type f -exec install -Dm 755 "{}" "target/directory" \;
-D
여기서 필수는 아니며, 존재하지 않는 디렉토리를 대상에 작성하기 만합니다.
현재 위치에서 시작하여 전체 디렉토리 계층 및 해당 파일을 복사하려면 (빈 디렉토리는 생략 됨)
find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \;
말했듯이,에서 시작하여 트리가 다시 생성됩니다 $PWD
. 당신이 빈 디렉토리를 복사해야하는 경우 또한,에 사용하는 방법 찾을 수 -type d
의 find
과 install -d
.
따라서 트리가 아닌 디렉토리에서 시작하여 트리를 복사하려면 다음을 수행하십시오 $PWD
.
(cd parent/directory && find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \;)
parent/directory
복사되지 않은 방법 에 주목하십시오 .
특별한
를 사용하는 사람들을 위해 shell/fish
다음과 같은 행이 있습니다.
fish -c 'cd parent/directory; and find directory/tree/to/copy -type f -exec install -Dm 755 "{}" "target/directory/{}" \\;'