Назад | Перейти на главную страницу

копировать и заменять папки другим быстрым способом - linux bash

У меня есть три папки: ядро, проект и слияние со множеством файлов внутри. Я хочу удалить все файлы и папки (включая файлы с точками) внутри слияние папку, а затем скопируйте все файлы (включая файлы с точками) из ядро папку в слияние папку, а также объединить все файлы в проект папку в слияние файлы.

Ситуации

  1. Как я могу удалить все файлы и папки (включая точечные) из специальных папок, не удаляя их? (rm -rf /path/to/folder/* не удалял файлы и папки.)
  2. Каков самый быстрый способ скопировать (с объединением и заменой) все файлы рекурсивно из специальной папки в другую (включая точечные файлы)? (tar -cf my.tar path/; tar -xf my.tar)

Я использую tar, но файлов слишком много, и мне нужен более быстрый способ.

Удаление

rm -r merge/* merge/.*
rm: "." and ".." may not be removed

Вы можете игнорировать это предупреждение. Лично я бы, наверное, просто rm -r merge и уничтожить сам каталог.

Копирование

cp -r core/ merge/

... но это перезапишет каталог слияния.

cd core && find . -exec cp "{}" "../merge/{}" \;

Немного медленнее и сложнее писать, но функционально и не разрушает родительский каталог.

Все сразу

rsync -av --delete core/ merge/