120개의 경로가 포함된 텍스트 파일이 있습니다 list_of_dirs_to_copy
.
data/A/backups/2018_02_12
data/B/backups/2/files
data/B/old_files/2015_12
data/C/my_datafiles/800/dat
data/F/backups & old files (second backups)
...
중요한 팁LF
: 위 파일에는 개행 문자가 있고, &
디렉토리 이름에 및 등의 특수 문자가 있습니다.(
data
에 누워있다 /mnt/storage3/workfiles/backups
. 그래서 나는 cd /mnt/storage3/workfiles/backups
내 길을 list_of_dirs_to_copy
적절하게 만들기 위해 이렇게 합니다.
이제 다음 명령을 사용하여 텍스트 파일에 나열된 모든 디렉터리(및 모든 숨겨진 파일과 하위 디렉터리)를 다른 하드 드라이브에 복사하고 싶습니다.
rsync -rvh --append-verify --chmod=ugo=rwX --no-o --no-g --no-perms --progress --stats $list_of_directories /drives/f/data_backups/
rsync
디렉토리 목록을 손상시키지 않고 전달(즉, 수신)하려면 어떻게 해야 합니까 Argument list too long
? 각 텍스트 줄을 rsync
하나씩 보낼 수 있나요? 이게 말이 돼?
답변1
rsync -av ...options... --files-from=list_of_dirs_to_copy \
/mnt/storage3/workfiles/backups/ \
/drives/f/data_backups
경로는 list_of_dirs_to_copy
소스 디렉터리를 기준으로 해석됩니다. 주어진 목록을 사용하여 data
아래에 하위 디렉터리가 생성됩니다 /drives/f/data_backups
.