이런 디렉토리가 있어요
Main Directory
SubDirectory
SubsubDirectory1
xx.jpg
xx,jpg
SubsubDirectory2
xx.jpg
xx,jpg
SubDirectory
SubsubDirectory1
xx.jpg
xx,jpg
SubsubDirectory2
xx.jpg
xx,jpg
SubDirectory
SubsubDirectory1
xx.jpg
xx,jpg
SubsubDirectory2
xx.jpg
xx,jpg
SubsubDirectory1의 모든 파일을 대상 디렉터리에 복사하고 싶습니다.
답변1
파일 이름이 고유하지 않은 경우
cp "Main Directory"/*/Subsubdirectory1/* destdir
대상의 일부 파일을 덮어쓰게 됩니다. 이 경우에도 실패합니다.수천일치하는 경로 이름.
이 문제를 해결하려면 GNU를 사용하십시오 cp
.
for pathname in "Main Directory"/*/Subsubdirectory1/*; do
cp --backup=numbered "$pathname" destdir
done
이렇게 하면 덮어쓰게 될 파일의 백업 번호가 생성됩니다.
같은 일이지만 GNU가 아닌 것을 사용하는 경우 cp
:
for pathname in "Main Directory"/*/Subsubdirectory1/*; do
# create first stab at destination pathname
dest="destdir/${pathname##*/}"
i=0
while [ -e "$dest" ]; do
# destination name exists, remove backup number from end of
# pathname and replace with next one in the sequence
i=$(( i + 1 ))
dest="${dest%.~*~}.~$i~"
done
cp "$pathname" "$dest"
done
답변2
이 시도:
cp mainDir/*/SubsubDirectory1/* <destination_path>
참고: 파일 이름은 달라야 합니다.