Digamos que tengo un archivo /templates/appley quiero
- ponlo en dos lugares diferentes y luego
- quitar el original
Por lo tanto, /templates/applese copiará a /templates/usedAND /templates/inuse
y luego me gustaría eliminar el original.
¿Es cpla mejor manera de hacer esto, seguido de rm? ¿O hay un mejor camino?
Quiero hacerlo todo en una línea, así que estoy pensando que se vería algo así:
cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple
¿Es esta la sintaxis correcta?

¿Por qué no
cpa la ubicación 1, luegomva la ubicación 2. Esto se encarga de "eliminar" el original.Y no, no es la sintaxis correcta.
|se utiliza para "canalizar" la salida de un programa y convertirla en entrada para el siguiente programa. Lo que quieres es;, que separa múltiples comandos.Si necesita que los comandos individuales DEBEN tener éxito antes de que se pueda iniciar el siguiente, entonces usaría
&&en su lugar:De esa manera, si alguno de los
cpcomandos falla,rmno se ejecutará.fuente
Tenga en cuenta que
cp A B; rm Aes exactamentemv A B. También será más rápido, ya que no tiene que copiar los bytes (suponiendo que el destino esté en el mismo sistema de archivos), simplemente cambie el nombre del archivo. Entonces quierescp A B; mv A Cfuente
Otra opción es escribir Ctrl+V Ctrl+Jal final de cada comando.
Ejemplo (reemplazar
#con Ctrl+V Ctrl+J):Salida:
Esto ejecutará los comandos independientemente de si los anteriores fallaron.
Igual que:
echo 1; echo 2; echo 3Si desea detener la ejecución de comandos fallidos, agregue
&&al final de cada línea excepto la última.Ejemplo (reemplazar
#con Ctrl+V Ctrl+J):Salida:
En
zshtambién puede usar Alt+Entero en Esc+Enterlugar deCtrl+V Ctrl+Jfuente
Prueba esto..
cp /templates/apple /templates/used && cp /templates/apple /templates/inuse && rm /templates/applefuente
Usar tuberías me parece extraño. De todos modos, debe usar el
andoperador lógico Bash:Si los
cpcomandos fallan,rmno se ejecutará.O bien, puede hacer una línea de comando más elaborada usando un
forbucle ycmp.fuente