다음 내용이 포함된 휴대용 디스크가 있습니다.
/media/usb1/CBCradio3/1.wav
/media/usb1/CBCradio3/2.wav
/media/usb1/CBCradio3/3.wav
/media/usb1/CBCradio3/4.wav
/media/usb1/podcasts/1.wav
/media/usb1/podcasts/2.wav
/media/usb1/podcasts/3.wav
다음 내용이 포함된 하드 드라이브도 있습니다.
/home/user/Music/CBCradio3/2.wav
/home/user/Music/CBCradio3/3.wav
/home/user/Music/radio12/1.wav
/home/user/Music/radio12/2.wav
데이터를 복사하고 싶은데, 안에 폴더명이 /Music/
이미 존재한다면 무시하면 됩니다.
즉, 폴더에 혼합된 데이터가 포함되는 것을 원하지 않습니다. 일반 복사본을 사용하여 드라이브를 복사하면 다음과 같은 결과가 발생합니다.
/home/user/Music/CBCradio3/1.wav <--added to folder
/home/user/Music/CBCradio3/2.wav
/home/user/Music/CBCradio3/3.wav
/home/user/Music/CBCradio3/4.wav <--added to folder
/home/user/Music/podcasts/1.wav <--added whole folder
/home/user/Music/podcasts/2.wav <--added whole folder
/home/user/Music/podcasts/3.wav <--added whole folder
/home/user/Music/radio12/1.wav
/home/user/Music/radio12/2.wav
하지만 콘텐츠를 병합하고 싶지는 않습니다. 폴더가 있으면 콘텐츠 복사를 건너뛰어야 합니다. 이 목표를 어떻게 달성할 수 있나요?
- 복사를 시도했지만 폴더 내용이 병합되었습니다
mc
.thunar
- 다음 디렉터리에는
.../usb1/
추가 하위 디렉터리가 포함되어 있지 않습니다.
답변1
귀하의 설명에 따르면 이것은 재귀 문제가 아닙니다. foo
소스와 대상 모두에 존재하는 경우 foo
스토리가 끝나면 복사되지 않습니다. 따라서 간단한 쉘 루프로 이 문제를 해결할 수 있습니다.
source=/media/usb1
destination=/home/user/Music
test -d "$destination" || mkdir -- "$destination"
for x in "$source"/*; do
if ! [ -e "$destination/$x" ]; then
cp -Rdp "$x" "$destination/"
fi
done
(그러나 이 요구 사항은 문제가 있습니다. 예를 들어 복제가 중단되면 대상의 일부 디렉터리만 남게 되어 복구할 방법이 없거나 복구해야 할 항목을 알 수도 없게 됩니다.)
답변2
일부 파일을 복사(또는 복사하지 않음)하기 전에 일부 파일을 선택/선택 취소하기 위해 확인해야 하는 경우 rsync 또는 기타 도구를 사용하는 것이 그리 편리하지 않은 경우도 있습니다.
따라서 두 디렉터리를 모두 표시하고 내용을 비교하고 "동기화"할 수 있는 텍스트 콘솔 "그래프" 도구를 사용할 수 있습니다.
예를 들어:https://en.wikipedia.org/wiki/Double_Commander
여기에는 시도해 볼 수 있는 기능을 포함하여 많은 기능이 있습니다.
디렉토리 비교: 디렉터리(전체 또는 선택한 디렉터리만)를 대칭(양방향) 및 비대칭(단방향)으로 비교하고 동기화할 수 있습니다. 이 기능은 디렉터리와 하위 디렉터리별로 두 위치 간의 차이점을 보여 주며, 추가, 변경 또는 삭제된 파일을 완전히 자동으로 백업할 수 있습니다.
일반 텍스트(터미널 내) 인터페이스로서의 변형은 오래되었지만 올해까지 계속 업데이트됩니다.MC, 또한 ~으로 알려진https://en.wikipedia.org/wiki/Midnight_Commander. 이것https://en.wikipedia.org/wiki/Comparison_of_file_managers괜찮다고 표시됩니다. 지금 디렉터리를 동기화하세요. 키를 누르는 것만으로 쉽게 이동할 수 있으므로 시도해 보는 것이 좋습니다.
물론 이러한 도구를 사용하면 다음 비교가 새로워지기 때문에 나중에 중단하고 다시 시작하기가 매우 쉽습니다.