Как скопировать в bash все каталоги и файлы рекурсивно?


137

У меня есть скрипт:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir содержит также подпапки.

Проблема в том, что DestFolderне только во всем дереве, но и на всех уровнях и файлах.

Как исправить ?


Извините, забыл добавить -name "* .txt"
user710818

Ответы:


289
cp -r ./SourceFolder ./DestFolder

6
Итак, чтобы уточнить, опция capital -R снова скопирует корневой каталог; Параметр small -r сохраняет корневые пути одинаковыми.
AnneTheAgile

8
@AnneTheAgile - от моих тестов только что и согласно страницам руководства, -r и -R не отличаются.
аааааа

@aaaaaa, ты! на какой ОС / версии вы работаете? Позже я узнал, что команды bash могут слегка различаться в разных операционных системах.
AnneTheAgile

2
cpэто не команда bash, а отдельный исполняемый файл, поэтому она зависит от системы. Истинные команды bash, с другой стороны, одинаковы для всех операционных систем.
lanzz

52

код для простой копии.

cp -r ./SourceFolder ./DestFolder

код для копии с успешным результатом

cp -rv ./SourceFolder ./DestFolder

код для принудительно, если источник содержит какой-либо файл только для чтения, он также будет копировать

cp -rf ./SourceFolder ./DestFolder

для получения дополнительной информации

cp --help
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.