다음과 같은 디렉터리와 파일 구조가 있습니다.
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
. 결과를 디렉터리로만 제한하세요.