Выполнение команды в конце скрипта

Rsync не сохраняет память от одного запуска к другому. Если вы переместите файл на другой компьютер, rsync все равно.

Если вы прервете rsync в середине передачи большого файла (из вашего вопроса неясно, собирались ли вы это сделать), этот файл будет потерян. Чтобы сохранить частичные переводы, передайте параметр - частичный .

0
04.03.2018, 09:36
1 ответ

La ​​solución más fácil sería hacer la copia más tarde:

#!/bin/bash

# something something script stuff

[ ! -f somefile ] && exit 1

find something -type f -newer somefile -exec cp {}. ';'

Si desea que el usuario confirme cada copia, use -oken lugar de -execenfind:

find something -type f -newer somefile -ok cp {}. ';'

Primero recorrer el archivo para crear una lista de archivos para copiar, pidiéndole al usuario una entrada para cada archivo, y luego realizar la copia:

copy_these=$(mktemp)

find something -type newer somefile \
    -exec bash -c '
        read -p "Copy $0? [y/n/q]: "
        case "$REPLY" in
            [yY]*) printf "%s\n" "$0" ;;
            [qQ]*) exit 1 ;;
        esac' {} ';' >"$copy_these"

# do other stuff

# then copy the files

xargs cp -t. <"$copy_these"

rm -f "$copy_these"

Tenga en cuenta que esto supone que todos los nombres de archivo se comportan bien (sin saltos de línea ), y que se utiliza GNU cp.

0
28.01.2020, 04:29

Теги

Похожие вопросы