Linux를 사용하여 하위 디렉터리에서 상위 수준으로 데이터를 복사하는 방법

Linux를 사용하여 하위 디렉터리에서 상위 수준으로 데이터를 복사하는 방법

다음과 같은 디렉터리와 파일 구조가 있습니다.

path/A/1/a/11.txt
path/A/1/a/12.txt
path/A/2/a/21.txt
path/A/3/a/31.txt

이 파일을 한 수준 더 높은 다른 경로에 복사하고 싶습니다. 새 경로에서는 하위 디렉터리 "a"를 사용할 수 없습니다.

path2/A/1/11.txt
path2/A/1/12.txt
path2/A/2/21.txt
path2/A/3/31.txt

여러 개의 디렉터리가 있고 그 안에 여러 개의 파일이 있으므로 아래 명령을 간단히 사용할 수 없습니다.

cp -R path/A/1/a/*.txt path2/A/1/

입력을 찾습니다. 감사해요

답변1

루프를 사용하겠습니다.

from=some/path
to=some/other/path2

for dir in "$from"/A/*/; do
  dest=${dir/#$from/$to}
  mkdir -p "$dest"
  cp -v "$dir"/*/*.txt "$dest"
done

명령 패턴의 후행 슬래시를 참고하세요 for. 결과를 디렉터리로만 제한하세요.

관련 정보