Actualmente, estoy ejecutando estos dos comandos para crear una copia de seguridad rápida del directorio. ¿Hay alguna forma de combinar los dos comandos en uno, de modo que copie y renombre el nuevo directorio en un comando?
#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
Respuestas:
Deberías poder hacer solo
Sin embargo , si el directorio de destino ya existe, esto agregaría la parte final de la ruta de origen a la ruta de destino, creando
/tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App
y luego copiando el resto del árbol dentro de eso.Para evitar esto, utilícelo
/tf/Custom_App/.
como fuente. Por supuesto, en ese caso es posible que deseerm -r /tf/Custom_App_backups/Custom_App_2017-12-21
primero, si no desea que haya archivos más viejos por ahí después de la copia.La diferencia entre
/some/dir
y/some/dir/.
se discutió hace un tiempo en cp se comporta de manera extraña cuando. (punto) o .. (punto punto) son el directorio fuentefuente
.
como directorio de origen es usar el-T
indicador para indicarcp
que se sobrescriba el destino en lugar de crear un nuevo miembro dentro de él.cp
./tf/Custom_app/.
truco es justo lo que necesitaba.cp -a
También funciona.cp -a
por supuesto, también aparece en, por ejemplo, FreeBSD y OpenBSD, pero todavía no es una característica estándar, es decir, no está especificada por POSIX . (cp -T
Que se ha mencionado anteriormente parece un GNUism, que no está en POSIX, y no en los BSD por lo que yo puedo ver.)Alternativamente, puede hacerlo así:
Esto le permitirá especificar su ubicación personalizada de antemano. Además,
/.
tenga en cuenta que usa el sufijo Esto le permite copiar solo el contenido y excluir la carpeta que lo contiene, en este caso, es laCustom_app
carpeta.fuente