how to remove a file whose name starts with '-

2019-03-27 18:39发布

问题:

This question already has an answer here:

  • How to remove files starting with double hyphen? 7 answers
  • rm cannot delete files starting with — [duplicate] 3 answers

After a mistake in a script I ended up with a file whose name starts with a dash '-'

-myfile.txt

I tried so far :

rm -myfile.txt
rm: illegal option -- m
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

rm "-myfile.txt"
rm: illegal option -- m
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

rm "\-myfile.txt"
rm: \-myfile.txt: No such file or directory

rm \-myfile.txt
rm: illegal option -- m
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

rm "-"myfile.txt
rm: illegal option -- m
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

Do you have any idea ?

Thanks

回答1:

Thanks to @ajp15243 : the answer is :

rm ./-myfile.txt

or

rm -- -myfile.txt


回答2:

Use the absolute pathname

Like rm /home/name/-myfile.txt



回答3:

you could always try the inode solution :

$ ls -al -i | grep me
2116530 -rw-rw-r--  1 user123 user123       0 Feb 27 12:39 me

and 2116530 is the inode of the file. Then you can use find to delete it

find ./ -inum 2116530 --delete

or even

find ./ -inum 2116530 -exec rm {\} \;


回答4:

try this one put your file name in "-" eg: rm "-myfile.txt"



标签: bash shell unix rm