Як скопіювати в bash всі рекурсивні файли та файли?


137

У мене є сценарій:

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

SourceDir містить також підпапки.

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

Як виправити?


Вибачте, забув додати -name "* .txt"
user710818

Відповіді:


289
cp -r ./SourceFolder ./DestFolder

6
Отже, для уточнення, капітал -R варіант буде копіювати кореневий dir знову; мала -r опція зберігає кореневі шляхи однаковими.
AnneTheAgile

8
@AnneTheAgile - від моїх тестів саме зараз та відповідно до сторінок man -r і -R не відрізняються.
aaaaaa

@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.