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

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

2 ответа2

2

Когда вы указываете test/A/ , вы говорите Bash скопировать сам каталог.

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

cp -R test/A/* test/B

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

0

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

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

rsync -va test/A test/B

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

rsync -va test/A/ test/B

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .