Команда 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

спасибо.

2 ответов


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

cp -r /home/hope/subfolder .

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

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


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

cp home/tmp/a* ./

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

cp ~/home/tmp/a* ./

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