답변1
이는 find
현재 위치에 대한 전체 경로가 인쇄되기 때문에 발생합니다(예: inclusive src
). 이를 방지하려면 첫 번째 경로 구성 요소를 제거하거나 디렉터리 구조로 더 자세히 이동해야 합니다.
cd src && find . -name '*.json' -print0 | cpio -0pdm ../lib
답변2
다음을 수행할 수 있습니다.
find . -name '*json' |
while IFS= read -r file; do
mkdir -p lib/$(dirname "$file");
cp "$file" lib/"$(dirname "$file")"
done
또는 파일 이름에 개행 문자가 포함될 수 있는 경우:
find . -name '*json' -print0 |
while IFS= read -d '' -r file; do
mkdir -p lib/$(dirname "$file");
cp "$file" lib/"$(dirname "$file")"
done