Ho uno script di shell in esecuzione su ambiente Windows in ambiente cygwin. Questo script ha una funzione di eliminazione che elimina determinate cartelle sulle basi del sistema in determinate condizioni.Cygwin: differenza tra il comando ' rm -fr' e 'rm -fr'?
preparo la lista di tutte le cartelle che voglio eliminare e quindi utilizzare il comando seguente:
rm -rfv $purge (where purge is the list of directories I want to delete)
Ora, quando ho provato questo script, le directory non sono essere eliminati del tutto. Per prima cosa ho pensato che ci fosse qualche problema con la purge list, ma sul debug mi sono reso conto che l'elenco di purge va bene.
Dopo un sacco di debug e le prove che ho appena fatto piccolo cambiamento al comando:
\rm -rfv $purge
E 'solo una specie di colpo e prova e sceneggiatura inizia a lavorare bene. Ora per quanto ne so \ rm e rm -f significano entrambi eliminazione forzata.
Ora, come posso giustificare questo perché 'rm -f' cosa funziona in precedenza ma '\ rm -f' sì. Voglio sapere la differenza di base tra questi due comandi.
Ho anche provato a dare il percorso esatto del comando rm come/usr/bin/rm -fr. Penso che questo sia uguale a \ rm -fr ... giusto ?? correggimi se ho torto – dhroove
Se hai/usr/bin/rm prima nel PATH e non hai alcuna funzione rm() definita, allora sì. Si noti che sulla maggior parte dei sistemi rm si trova in/bin/(non/usr/bin /), poiché è un comando di sistema essenziale. –
anche dopo aver usato il percorso assoluto per il comando rm nel mio script .. la funzione di eliminazione non funzionava nello script ... Solo dopo aver usato \ rm quindi solo il suo inizio di lavoro .... Abbiamo una buona spiegazione per questo. .. Gentilmente correggimi se mi sto confondendo da qualche parte .. – dhroove