2012-12-17 9 views
5

Ho uno script che crea i file e, a volte finiscono per avere 2 trattini all'inizio, c'è qualche modo per eliminarli mv non funziona neancherm non può eliminare i file che iniziano con -

Ecco il errore sto ottenendo

$ ls 
--1355509766.jpg 

$ rm --1355509766.jpg 
rm: illegal option -- - 
usage: rm [-f | -i] [-dPRrvW] file ... 
    unlink file 

$ rm "--1355509766.jpg" 
rm: illegal option -- - 
usage: rm [-f | -i] [-dPRrvW] file ... 
    unlink file 

risposta

19

Il trucco abituale è

rm ./--1355509766.jpg 

Aggiornamento: ecco cosa man rm ha da dire su questo:

To remove a file whose name starts with a '-', for example '-foo', use 
one of these commands: 

     rm -- -foo 

     rm ./-foo 
9

Utilizzare -- per separare le opzioni dai parametri.

$ rm -- --1355509766.jpg 

Questo funziona anche con altri comandi. Per esempio: il nome del file

$ touch -- -v   # create a file called -v 
$ grep foo -- -v  # grep for "foo" in file called -v 
6

Prova con il percorso:

$ rm ./--file.name 

Esempio:

$ echo dgag > --test.txt 
$ ls 
--test.txt 
$ rm ./--test.txt 
$ ls 
+0

Sì, questo ha funzionato grande .... Ho avuto un nome di file che iniziano con l'hash firmate # nome_file # e questo è il modo in cui l'ho cancellato rm ./#file_name# – zee