Рекурсивно копировать и перезаписывать каталог

Шаг 1:

ssh-keygen -t rsa -P ""

Шаг 1: 2:

ssh-copy-id -i $HOME/.ssh/id_rsa.pub username@hostname

Шаг 3:

ssh hostname
1
задан 22 March 2015 в 15:03

2 ответа

Вы пробовали rsync?

По вашему мнению, это лучший инструмент.

$ rsync -av --delete temp/ existing_folder/

Обратите внимание на слэш после temp, это необходимо, потому что вы хотите синхронизировать содержимое. Без этого он создавал бы временную директорию в существующей папке.

Аргумент удаления делает файлы, которые больше не находятся в temp, удаляются в существующей папке.

Вы также можете делать сухие файлы, запустите, если вы добавите аргумент -n. Он расскажет вам, какие изменения будут сделаны без каких-либо действий.

5
ответ дан 23 May 2018 в 22:10
  • 1
    Я нашел это лучшим решением. Используя флаги -p -o и -g, я смог сохранить разрешения, владельца и группу – GrokSrc 11 June 2015 в 03:55

Объединив принятый ответ здесь с командой для копирования одного каталога в другой, команда ниже должна выполнить задание:

rm -rfv <existing_folder>/* && cp -r <temp>/* <existing_folder>

Но, как говорится в ссылке в ссылке, обратите внимание, что: [ ! d2] часть /* очень важна. Если вы поместите пробел перед *, он удалит все ваши файлы в текущем каталоге. это не приведет к удалению скрытых файлов «будьте очень осторожны, играя с rm, -r и * в одной команде. Это может быть катастрофическая комбинация».

1
ответ дан 23 May 2018 в 22:10
  • 1
    Спасибо за ответ, выполнит эту команду, чтобы целевая папка потеряла все, пока процесс запущен? Это папка, содержащая множество статических веб-страниц, и я просто хочу их заменить без какого-либо простоя. – user2028856 22 March 2015 в 12:37
  • 2
    @ user2028856 Ах, я вижу, действительно, целевая папка будет очищена до того, как произойдет копирование. Это можно сделать по-другому, но сначала нужно будет копировать, а затем удалить. Это потребует «бухгалтерского учета». скрипт. Существующий контент existing_folder, который не находится в temp, должен быть удален, не так ли? – Jacob Vlijm 22 March 2015 в 12:45
  • 3
    @ user2028856 Вы заметили последнее изменение моего комментария (если после existing_folder файлы, которые не в temp), должны быть удалены. :) – Jacob Vlijm 22 March 2015 в 13:10
  • 4
    Да, я хочу в основном заменить все в «existing_folder» на «temp», но без какого-либо времени простоя. – user2028856 22 March 2015 в 13:46
  • 5
    @ user2028856, пожалуйста, отредактируйте свой вопрос и включите эти требования. Также сообщите нам, существует ли взаимно однозначное соответствие между файлами в файлах original_dir и temp. Наконец, вы также должны объяснить, находятся ли эти два каталога на одном физическом диске. Это имеет огромное значение для времени, необходимого для перемещения вещей. mv по существу мгновенен на том же диске, но может занять некоторое время, если нет. – terdon♦ 22 March 2015 в 14:53

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

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