Вы можете использовать подстановку команд
var2=$(echo "$var1" | cut -d '/' -f 1)
Однако в этом случае было бы лучше использовать подстановку параметров оболочки напрямую:
$ var2=${var1%/*}
$ echo "$var2"
first
(удаляет самую короткую конечную подстроку, соответствующую/*
)и
$ var3=${var1#*/}
$ echo "$var3"
second
(удаляет кратчайшую начальную подстроку, соответствующую */
), если она вам понадобится.
Если это занимает слишком много времени, это может быть связано с тем, что rsync
не может применить свой quick check
, который зависит только от размера и времени.
Не разные файловые системы хранят время по-разному, это означает, что то, что rsync
сохраняет, не совпадает с тем, что оно позже извлекает.
Когда это происходит, rsync
не может применить быструю проверку и обращается к проверке контрольной суммы, которая заставляет его читать весь файл, чтобы убедиться, что это один и тот же файл, тем самым замедляя всю передачу.
ls -l --time-style=full-iso original_file
ls -l --time-style=full-iso already_synced_file
Сообщает вам, если это так. Если это так, у вас есть по крайней мере два варианта, в зависимости от того, насколько они далеки:
--size-only
, чтобы проверять только размер, а не время. --modify-window
, чтобы принять это во внимание. Следующее, кажется, заставляет мою синхронизацию фотографий работать очень быстро -три секунды вместо трех минут. Я избавился от сокращений, чтобы было понятно, что есть что:
time rsync --dry-run --verbose --compress --update --ignore-existing --recursive --group --times --progress --omit-dir-times --no-perms --modify-window=120 from/here/ /to/here/
Избавьтесь от времени, когда его больше не нужно измерять, избавьтесь от пробного прогона, когда кажется, что он делает то, для чего предназначен, и ничему не вредит.
Заметил при сборке было довольно много акселераторов и тормозов, при этом ситуации в команде и rsync ни разу не жаловались. Например, -a
— это -rlptgoD
, p означает --perms
, и какое-то время у меня там также было --no-perms
.
Некоторое время буду наблюдать за пробными прогонами и следить за тем, чтобы они продолжали работать.