Я хочу скопировать некоторые или все файлы из каталога test/A/
в каталог test/B/
, но без копирования самого каталога A.
Я пробовал команду cp -R test/A/ test/B
, но она также копирует каталог и файлы и становится test/B/A/
…
Я хочу скопировать некоторые или все файлы из каталога test/A/
в каталог test/B/
, но без копирования самого каталога A.
Я пробовал команду cp -R test/A/ test/B
, но она также копирует каталог и файлы и становится test/B/A/
…
Когда вы указываете test/A/
, вы говорите Bash скопировать сам каталог.
Чтобы скопировать только содержимое каталога, используйте *
glob:
cp -R test/A/* test/B
Здесь *
будет соответствовать всем файлам в A, кроме скрытых с префиксом, например .htaccess
. Чтобы включить их также с *
, вызовите shopt -s dotglob
раньше.
чтобы получить идентичную копию локально или удаленно, я бы предпочел rsync
cp
. Это дает вам гораздо более точный контроль над тем, что должно быть скопировано или даже удалено либо в источнике, либо в месте назначения, если это необходимо. И, кстати, исправляет проблемы со скрытыми файлами (ака .*
) Основное использование так же просто, как с cp
.
для копирования каталога A
и его содержимого в B
используйте:
rsync -va test/A test/B
для копирования содержимого каталога A
(включая скрытые файлы) в B
используйте:
rsync -va test/A/ test/B
если B не существует, он создан