Найдите файлы, измененные между двумя датами, из исходного каталога (рекурсивно) и скопируйте их в целевой каталог с той же структурой каталогов.

Я пытаюсь скопировать файлы из исходного кода в целевую папку, которая была изменена между двумя датами,

      #!/usr/bin/ksh

source=/home/Amal/DELTA/SOURCE

target=/home/Amal/DELTA/TARGET

cd $source

find ./ -type f -newermt "2021-07-08 00:00:00" ! -newermt "2021-09-18 23:59:55" -printf "%h:%p:\0" |

while IFS=":" read path file; do

cp "$file" "$target"/"$path"

done

ПРИМЕЧАНИЕ. Исходный код и каталог уже имеют одинаковую структуру каталогов. Мне просто нужно скопировать файлы так же, как каталог SOURCE.

Когда я выполняю этот скрипт, никаких изменений в папке TARGET не происходит.

1 ответ

Одним из способов может быть использование с опцией. это универсальная утилита копирования файлов, которая по умолчанию копирует структуры каталогов. С вариант, вы можете указать список, текстовый файл, который определяет файлы, которые должны быть включены в копию. Такой список можно создать с помощью команды.

Итак, сначала запустите чтобы найти нужные файлы и перечислить их в текстовом файле. Затем используйте только скопировать эти файлы. Очевидно, что легко написать сценарий, когда он заработает.

Другие вопросы по тегам