AddThis Smart Layers

среда, 24 февраля 2016 г.

Как копировать содержимое директорий в CentOS

Допустим, у нас имеется директория, в которой есть какие-то файлы и папки. Нам нужно скопировать содержимое этой директории в новую.
Ниже будут описаны два сценария копирования файлов и папок в терминале SSH.

Первый случай, самый простой, когда обе директории находятся на разных уровнях, при этом целевая директория пуста. Например
Исходная директория /path/to/source
Целевая директория /path/to/destination

Используем простую команду cp с ключом -R для рекурсивного копирования содержимого, включая папки.
cp -R /path/to/source/* /path/to/destination

Задача несколько усложняется, если целевая директоря не пуста.
В этом случае экранируем команду cp при помощи слэша и добавляем ключ -f.
Экранирование позволит форсировать копирование и перезапись существующих файлов и папок

\cp -fR /path/to/source/* /path/to/destination

Второй же случай подойдет если целевая директория находится внутри исходной. Например
Исходная директория /path/to/source
Целевая директория /path/to/source/destination

Для этой цели больше подойдет команда rsync и копировать содержимое исходной директории в целевую будем находясь в ней же
rsync -av --exclude='destination' . ./destination

Если же копировать при помощи rsync находясь в другой директории, необходимо указывать полный путь к исходной и целевым директориям
rsync -av --exclude='destination' /path/to/source/ /path/to/source/destination/

Комментариев нет :

Отправить комментарий