remove o arquivo com -h_some_file_name no shell [duplicado]

2

Eu tenho um problema ao tentar remover um arquivo com o nome algo como -h_some_file_name , isso é por causa do script gerado que eu fiz e esqueça de verificar o prefixo.

Se eu executar o comando rm '-h_some_file_name' , ele retornará um erro rm: invalid option -- 'h' .

Se eu tentar alterar o nome e, em seguida, removê-lo usando mv '-h_some_file_name' new_filename , ele retornará mv: invalid option -- 'h'

Pergunta: Como remover um arquivo com nome como -h_some_file_name no shell? se usando o gui, eu posso clicar com o botão direito do mouse e ir para o lixo, mas no shell só retorna um erro

    
por whale_steward 19.05.2015 / 06:46

2 respostas

2

Apenas:

rm -- -h_some_file_name

Ou:

rm ./-h_some_file_name

Veja a página de manual de rm :

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

          rm -- -foo

          rm ./-foo

O argumento -- informa rm que todos os argumentos a seguir não devem ser tratados como parâmetros. Uma variedade de outras ferramentas de linha de comando Linux / Unix suportam esse argumento. Esta interpretação de -- segue as convenções de análise do argumento POSIX 1) . O utilitário mv também suporta:

mv -- -h_some_file_name new_file_name

1) Especificações do Grupo Aberto Edição 7, Norma IEEE 1003.1, Diretriz 10

    
por chaos 19.05.2015 / 07:44
0

Você pode usar curingas. Neste caso, você pode usar o curinga "*".

Vá para o diretório onde os arquivos desse tipo devem ser excluídos ou você precisa mencionar o caminho completo no comando.

Depois de configurar o terminal para o seu diretório, digite o seguinte

rm ./-h*

Para obter mais informações, você pode ver este link: link

Para informações detalhadas, siga um livro relacionado ao bash.

    
por hunch 19.05.2015 / 07:10