cp -f no puede sobrescribir cp -i alias


8

En mi archivo /home/user/.bashrc, tengo esos alias para evitar errores:

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

Si estoy realmente seguro de lo que estoy haciendo, puedo sobrescribir rmy mvusar alias rm -fo mv -f, no me preguntará si realmente quiero sobrescribir archivos.

El problema es que no funciona para el cpcomando, el uso cp -faún me hará una pregunta.

¿Esto es normal? ¿Qué debo hacer para tener un cp -ialias por defecto y poder usar el cp -fcomando también?

Estoy usando Debian Wheezy 64bit.

Respuestas:


9

Mientras que -fsignifica forzarlos a todos cp, porque significa forzar al intentar eliminar el destino primero si el destino no se puede actualizar .

Por mvy rm, -fsimplemente reemplaza -i. Pero para cp, cambia el comportamiento de la utilidad, -fno es lo contrario de -ien ese caso, cp -i -ftiene sentido y significa, si el objetivo existe, pregunte al usuario y si no se puede anular, elimínelo primero .

Incluso para mvy rm, agregar -fno es lo mismo que eliminar -icuando se trata de mensajes de advertencia y error enviados al usuario. Por ejemplo rm non-existent-file, reportaría un error mientras rm -i -f non-existent-fileque no.

Como ya se mencionó, para eliminar el efecto de -i, en lugar de agregar -f, debe deshabilitar el alias utilizando cualquiera de las soluciones proporcionadas.


"Para mv y cp, -f simplemente anula -i". Te refieres a mv y rm, creo. Gracias por explicar, ¡ahora está muy claro para mí!
baptx

11

Al dar cp -f, la opción simplemente se suma a la opción existente.

Es decir, si tiene un alias cp='cp -i', la palabra cp se reemplaza en el comando cp -f, por lo que obtiene cp -i -f file1 file2.

Para anular el alias:

\cp -f file1 file2

La barra diagonal inversa antes del comando deshabilitará el alias. Puede usar en command cplugar de \cplegibilidad.


Cometí un error en mi publicación, cuando hablé de cp -r, quise decir cp -f, está corregido. Su solución con una barra invertida está funcionando, ¡gracias! Pero todavía no entiendo por qué la barra invertida no es necesaria para el comando mv o rm, ¡el alias está deshabilitado directamente con mv -f y rm -f!
baptx
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.