Tengo un script de shell que se ejecuta en el entorno de Windows en el entorno cygwin. Este script tiene una función de purga que elimina ciertas carpetas en las bases del sistema en ciertas condiciones.Cygwin: diferencia entre el comando ' rm -fr' y 'rm -fr'?
preparo la lista de todas las carpetas que desea eliminar y luego usar siguiente comando:
rm -rfv $purge (where purge is the list of directories I want to delete)
Ahora cuando probé esta secuencia de comandos, los directorios están no ser eliminado en absoluto. Primero pensé que había algún problema con la lista de depuración, pero en la depuración llegué a saber que la lista de depuración está bien.
Después de un montón de depuración y pruebas que acabo de hacer un pequeño cambio en el comando:
\rm -rfv $purge
Es sólo una especie de golpe y el ensayo y la escritura comienza a trabajar bien. Ahora, por lo que sé \ rm y rm -f, ambos significan eliminación forzada.
Ahora, ¿cómo puedo justificar esto por qué 'rm -f' lo que ahora funcionaba antes, pero '\ rm -f' lo hizo. Quiero saber la diferencia básica entre estos dos comandos.
También he intentado dar la ruta exacta del comando rm como/usr/bin/rm -fr. Creo que esto es igual a \ rm -fr ... ¿verdad? Corrígeme si estoy equivocado – dhroove
Si tiene/usr/bin/rm primero en la RUTA y no tiene definida ninguna función rm(), entonces sí. Tenga en cuenta que en la mayoría de los sistemas rm está en/bin/(not/usr/bin /), ya que es un comando esencial del sistema. –
incluso después de usar la ruta absoluta para el comando rm en mi script ... la función de purga no funcionaba en el script ... Solo después de haber utilizado \ rm, solo comienza a funcionar ... ¿Tenemos una buena explicación para esto? .. Por favor, corrígeme si me confundo en alguna parte .. – dhroove