how to remove a file whose name starts with '-

2019-03-27 18:18发布

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

标签: bash shell unix rm
4条回答
疯言疯语
2楼-- · 2019-03-27 19:00

Thanks to @ajp15243 : the answer is :

rm ./-myfile.txt

or

rm -- -myfile.txt
查看更多
唯我独甜
3楼-- · 2019-03-27 19:04

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楼-- · 2019-03-27 19:07

Use the absolute pathname

Like rm /home/name/-myfile.txt

查看更多
放荡不羁爱自由
5楼-- · 2019-03-27 19:07

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

查看更多
登录 后发表回答