Come eliminare tutti i file dalla directory corrente comprese directory corrente?
-
23-08-2019 - |
Domanda
Come posso cancellare tutti i file e le sottodirectory dalla directory attuale directory corrente?
Soluzione
Sotto bash con strumenti GNU, lo farei così (dovrebbe essere sicuro nella maggior parte dei casi):
rm -rf -- "$(pwd -P)" && cd ..
non sotto bash e senza strumenti GNU, vorrei utilizzare:
TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP
perché questo più sicuro:
- terminare la lista degli argomenti con
--
nei casi il nostro elenco inizia con un trattino (non bash:./
prima del nome del file) -
pwd -P
non solopwd
nei casi in cui non siamo in una directory reale, ma in un link simbolico che punta ad esso. -
"
s in tutto l'argomento, in casi la directory contiene spazi
alcune informazioni casuali (versione bash):
- l'
cd ..
alla fine può essere omesso, ma si sarebbe in una directory inesistente altrimenti ...
Modifica : Come osservato kmkaplan, la cosa --
non è necessario, come pwd
restituisce il nome del percorso completo, che inizia sempre con /
su UNIX
Altri suggerimenti
olddir=`pwd` && cd .. && rm -rf "$olddir"
È necessaria la cd ..
, altrimenti fallirà in quanto non è possibile rimuovere la directory corrente.
rm -fr "`pwd`"
Credo che questo sarebbe possibile sotto DOS / Windows CMD, ma non riesco a trovare un modo per pipe i dati tra i comandi. Qualcun altro può conoscere la correzione per questo?
FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%
sistema operativo? sulle cose * NIX-based, siete alla ricerca di 'directory rm-rf /'
NOTA: il flag 'r' per 'ricorsivo' può essere pericoloso
Si può solo tornare indietro cartella principale della cartella di destinazione, quindi utilizzare 'rm -rf YourFolder'. oppure si può utilizzare 'rm -rf *' per eliminare tutti i file e sottocartelle dalla cartella corrente.