puede - Comando Linux cp para copiar una carpeta al directorio actual
linux mv no se puede efectuar stat (2)
Para mi la principal barrera era la parte / home. Necesitaba copiar archivos de una carpeta de mi casa que comenzaba con la letra ''a'' en mi carpeta actual, que no estaba en casa. Así que utilicé:
cp home/tmp/a* ./
La primera línea funcionó para mí. Mientras intentaba comandos como:
cp ~/home/tmp/a* ./
pero esto no funcionó.
Me pregunto si hay un comando idéntico para copiar una carpeta en el directorio actual como lo hizo con el antiguo MS-DOS. Digamos que la ubicación actual de mi directorio es:
/var/www/
Tengo carpetas y archivos en:
/home/hope/subfolder/docs/
/home/hope/subfolder/images/
/home/hope/subfolder/.config
/home/hope/subfolder/readme.txt
Sé que el siguiente comando:
cp -rT /home/hope/subfolder .
copiará todos los archivos (incluso los archivos de puntos ocultos) y las carpetas dentro de la carpeta "subcarpeta" al directorio actual, por lo que el resultado será:
/var/www/docs/
/var/www/images/
/var/www/.config
/var/www/readme.txt
Parece que el comando para copiar la carpeta de origen en la ubicación actual es:
cp -rT /home/hope/subfolder ./subfolder
aunque esto está bien, me parece que a veces cometo errores con nombres de carpetas complicados para el destino, por lo que hay una manera de usar un comando como:
cp -rT /home/hope/subfolder .
o incluso así
cp -rT /home/hope/subfolder /var/www/.
Para tener el siguiente resultado:
/var/www/subfolder/docs/
/var/www/subfolder/images/
/var/www/subfolder/.config
/var/www/subfolder/readme.txt
Gracias.
Simplemente omita el parámetro -T, ya que eso es lo que impide que el comando funcione correctamente:
cp -r /home/hope/subfolder .
El parámetro -T trata el argumento de destino como un archivo, por lo que no se realizará ninguna copia si eso es realmente un directorio.
Un recordatorio amigable: virtualmente todos los comandos de Unix tienen un argumento de línea de comandos de "ayuda" que vale la pena probar en caso de problemas :)