Когда я использую cp -r source dest, файлы точек, как в .gitIgnore или любом .xyz, игнорируются. Когда я использую cp -r source / .xyz dest, они копируются. Какая опция с помощью cp может копировать все файлы, включая файлы точек, при использовании подстановочного знака *?

2
user1782328 19 Окт 2017 в 11:46

3 ответа

Лучший ответ

Вы можете использовать подстановочный знак как cp -r. [^.] *

Это потому, что ваш bash создан для игнорирования скрытых файлов, а команда cp просто не получает скрытых аргументов. Вот как это должно работать .. :)

1
Abhay Dandekar 19 Окт 2017 в 08:57

Используя подстановочный знак *, вы можете попробовать команду cp source/*.* destination/, чтобы скопировать все скрытые файлы.

Если вы хотите включить скрытые каталоги в команду cp, вы можете попробовать следующую команду

cp -r source/. destination/

Обратите внимание на . в конце источника. Это включает в себя все файлы и каталоги в источнике, включая скрытые.

Или же

cp -r source/{.,}* destination/

x{.,}y преобразуется в x.y и xy. В вашем случае это будут source/.* и source/*

0
anupsabraham 19 Окт 2017 в 13:12

Как по мне самый универсальный способ:

cp -a /source/. /destination/

Или, если вы находитесь внутри исходной папки:

cp -a . /destination/
0
Гдето Якутский 16 Окт 2019 в 13:56