Команда Linux cp для копирования папки в текущий каталог - программирование

Команда Linux cp для копирования папки в текущий каталог

Мне интересно, есть ли идентичная команда для копирования папки в текущий каталог, как это было с использованием старой MS-DOS. Скажем, мое текущее местоположение каталога:

/var/www/

У меня есть папки и файлы по адресу:

/home/hope/subfolder/docs/
/home/hope/subfolder/images/
/home/hope/subfolder/.config
/home/hope/subfolder/readme.txt

Я знаю, что следующая команда:

cp -rT /home/hope/subfolder .

скопирует все файлы (даже точечные скрытые файлы) и папки в папку "подпапка" в текущий каталог, поэтому результат будет:

/var/www/docs/
/var/www/images/
/var/www/.config
/var/www/readme.txt

Похоже, команда на копирование исходной папки в текущее местоположение:

cp -rT /home/hope/subfolder ./subfolder

хотя это прекрасно, я считаю, что иногда я буду ошибаться в отношении сложных имен папок для адресата, так что есть способ использовать команду вроде:

cp -rT /home/hope/subfolder .

или даже как это

cp -rT /home/hope/subfolder /var/www/.

имеет следующий результат:

/var/www/subfolder/docs/
/var/www/subfolder/images/
/var/www/subfolder/.config
/var/www/subfolder/readme.txt

Спасибо.

4b9b3361

Ответ 1

Просто опустите параметр -T, так как это предотвратит правильную работу команды:

cp -r /home/hope/subfolder .

Параметр -T обрабатывает целевой аргумент как файл, поэтому копирование вообще не будет выполняться, если это фактически каталог.

Дружественное напоминание: практически все команды Unix имеют аргумент командной строки --help, который стоит попробовать в случае возникновения проблем:)

Ответ 2

Для меня главным барьером была/домашняя часть. Мне нужно было скопировать файлы из папки в моем доме, которая начиналась с буквы "a" в моей текущей папке, которой не было дома. Поэтому я использовал:

cp home/tmp/a* ./

это сработало для меня. Я пробовал команды вроде:

cp ~/home/tmp/a* ./

но это просто не сработало.