Копирование всех файлов из одного места в другое в Linux, без копирования самого каталога.

Копирование всех файлов из одного места в другое в Linux, без копирования самого каталога.

Я хочу скопировать некоторые или все файлы из каталога test/A/в каталог test/B/, но не копировать сам каталог A.

Я попробовал команду cp -R test/A/ test/B, но она копирует каталог и файлы и становится test/B/A/

решение1

Указывая test/A/, вы сообщаете Bash о необходимости скопировать сам каталог.

Чтобы скопировать только содержимое каталога, используйтешар*:

cp -R test/A/* test/B

Здесь, *будут соответствовать всем файлам в A, за исключением скрытых, имеющих префикс в виде точки, например .htaccess. Чтобы включить их также с *, вызовите shopt -s dotglobперед.

решение2

чтобы получить идентичную копию локально или удаленно, я бы предпочел rsync. cpЭто дает вам гораздо более тонкий контроль над тем, что должно быть скопировано или даже удалено либо в источнике, либо в месте назначения, если это необходимо. И, кстати, исправляет проблемы со скрытыми файлами (они же .*). Базовое использование так же просто, как и с cpthough.

для копирования каталога Aи его содержимого Bиспользуйте:

rsync -va test/A test/B

для копирования содержимого каталога A(включая скрытые файлы) использовать B:

rsync -va test/A/ test/B

если B не существует, он создается

Связанный контент