Команда 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
Спасибо.
Ответы
Ответ 1
Просто опустите параметр -T, так как это предотвратит правильную работу команды:
cp -r /home/hope/subfolder .
Параметр -T обрабатывает целевой аргумент как файл, поэтому копирование вообще не будет выполняться, если это фактически каталог.
Дружественное напоминание: практически все команды Unix имеют аргумент командной строки --help, который стоит попробовать в случае возникновения проблем:)
Ответ 2
Для меня главным барьером была/домашняя часть. Мне нужно было скопировать файлы из папки в моем доме, которая начиналась с буквы "a" в моей текущей папке, которой не было дома. Поэтому я использовал:
cp home/tmp/a* ./
это сработало для меня. Я пробовал команды вроде:
cp ~/home/tmp/a* ./
но это просто не сработало.