stat
является основным ингредиентом в этом рецепте: удалите echo
, если вы удовлетворены его работой
echo rm "$(stat -c "%Y:%n" * | sort -t: -n | tail -1 | cut -d: -f2-)"
Вы не указывайте свою платформу: это инструменты Linux и GNU.
Обратите внимание, что это не работает, если имя файла содержит новую строку.
rsync -ai /path/to/source/directory/ /path/to/destination/directory
Используется rsync
для копирования всех файлов из исходного каталога в целевой каталог. Если копирование было прервано, вы можете перезапустить его, просто повторив ту же команду.
Параметр -a
(--archive
)сохраняет метаданные -владельца файлов, (, разрешения, метки времени и т. д. )Это используется в последующих запусках для определения файлов, которые необходимо передать, и какие файлы не нужно передавать.
Опция -i
(--itemize-changes
)заставляет rsync
выводить информацию о каждой передаче.
В комментарии вы упомянули, что можете сделать это с корзиной AWS S3.
В этом случае вы можете использовать
aws s3 sync /path/to/source/directory/ s3://bucket/path/to/destination/directory/
Предположительно, это также можно будет перезапустить, если ваша машина по какой-либо причине прервет соединение.
См. также
Примечание. :Я не пользуюсь AWS, поэтому не могу это проверить.
Используя GNU find
, xargs
и cp
, это будет копировать 10 файлов за раз:
d="destination_directory..."
s="source_directory..."
find "$s" -type f -print0 | xargs -0rn 10 cp -n -t "$d"