У меня есть проекты Eclipse и файл ".project", структура каталогов выглядит как ' myProject/.project
'. Я хочу скопировать эти файлы .project в другой каталог, но хочу, чтобы имя вложенного каталога было сохранено.
Допустим, у меня есть ' a/myProject/.project
', я хочу скопировать ' myProject/.project
' в ' b
', так что будет ' b/myProject/.project
', но ' b/myProject
' не существует. Когда я пытаюсь в:
cp -r ./myProject/.project ../b
он копирует только сам файл «.project» без каталога «myProject». Пожалуйста, порекомендуйте.
Сначала используйте
mkdir -p
для создания папки назначения с созданием рекурсивного родительского пути. Затем скопируйте содержимое в папку назначения:источник
Смотрите
man cp
для получения дополнительной информации.источник
Я использую cpio в сочетании с find. Объяснение здесь .
Пример для вашего варианта использования:
Эта команда находит все файлы
/a/myProject/.project/
и копирует, сохраняя путь, любые файлы, содержащиеся внутри.источник
В дополнение к
--parents
этому также требуется добавить-r
опцию, чтобы избежать пропуска копии самой внутренней директорииТак что команда, которая работает для меня это
источник
Пожалуйста, имейте в виду, что, похоже, ошибка в
cp --parents
. Когда я использовал--parents
вместе с--preserve=all
, атрибуты даты и времени НЕКОТОРЫХ целевых каталогов НЕ сохранялись.Следующая ссылка, кажется, подтверждает, что это ошибка: ошибка # 8767: cp: --preserve = all не работает для родителей, когда используется --parent .
Таким образом, похоже, что вы не можете полагаться на атрибуты, сохраняемые при использовании
--parents
вместе с такими как--preserve=all
или-p
.источник
Я использовал
--parents
сcp
командой и работал отлично со мной. для более подробной информации всегда используйте руководство. Спасибо.источник