2015-12-11 4 views
0

я создать файл с именем «--address=16.187.249.27» случайно, и попробовать следующие методы, чтобы удалить его, но никакого успеха:Как удалить файл, чье имя начинается с "-"?

$ rm "--address=16.187.249.27" 
rm: unrecognized option '--address=16.187.249.27' 
Try 'rm ./'--address=16.187.249.27'' to remove the file ‘--address=16.187.249.27’. 
Try 'rm --help' for more information. 

$ rm "\--address=16.187.249.27" 
rm: cannot remove ‘\\--address=16.187.249.27’: No such file or directory 

Как удалить файл, имя которого начинается с «-»?

+0

'гт - yourfilename' –

+0

' rm' также достаточно полезно, чтобы точно сказать, что делать, чтобы удалить файл yor. –

ответ

2

Добавление в вашу командную строку одного экземпляра -- означает, что все, что приходит после, - это имена файлов, а не аргументы флага. Так что это нужно сделать, это:

rm -- --address=16.187.249.27 
2

со страницы человека

Примечание гт команда использует Getopt (3), чтобы разобрать его аргументы, что позволяет ей принимать вариант -- который заставит его для остановки вариантов опций обработки в этой точке. Это позволит удалить имена файлов , начинающиеся с тире (`- ').

For example: 
     rm -- -filename 

Такое же поведение можно получить, используя абсолютную или относительную ссылку на путь.

For example: 
     rm /home/user/-filename 
     rm ./-filename 

так что вы можете удалить, запустив

rm -- --address=16.187.249.27 
1

Есть несколько вариантов этого удалить такой файл:

rm ./--address\=16.187.249.27 
rm "./--address=16.187.249.27" 
rm './--address=16.187.249.27' 
rm -- --address=16.187.249.27 
find -maxdepth 1 -name "--address=16.187.249.27" -delete 
+0

Последний будет рекурсировать в подкаталоги, а также удалить каждый файл с таким именем, которое вы можете сохранить :-) –

+0

@ EmilVikström исправлено, спасибо – chaos