A maneira mais simples seria:
rm -i httpd.conf?
Eu criei um arquivo bash do Linux em um editor de texto do Windows. Este arquivo continha comandos para mover arquivos para outro local no linux.
Depois de executar este arquivo, descobri que os arquivos de destino têm o símbolo "\ r" no final. (Eu acho que isso é porque o Linux e Windows usam diferentes símbolos de fim de linha)
O comando 'Dir' mostra que eu tenho arquivos como estes: "httpd.conf \ r" enquanto 'ls' mostra o mesmo nome de arquivo como: "httpd.conf?"
Como faço para excluir esses arquivos?
Estes comandos não funcionam:
Rm httpd.conf\r
Rm httpd.conf\r
rm 'httpd.conf\r'
Eu recebo o seguinte erro:
rm: cannot lstat 'httpd.confr': Nenhum arquivo ou diretório desse tipo
Se você obtiver um nome de arquivo realmente chewy, você pode excluí-lo por inode:
execute ls -il
para obter o número do inode e use:
find -inum <inode number> -exec rm -i {} \;
para excluí-lo.
(crédito para um dos meus favoritos antigos para este: link )
Se você estiver usando bash e bash, o tab complete está ativado, você pode usá-lo para completar o nome do arquivo com o caractere em questão automaticamente escapado.
Suponha que você tenha dois arquivos no mesmo diretório: httpd.conf
e httpd.conf\r
.
Copie o (s) arquivo (s) que você deseja manter:
$ sudo cp httpd.conf httpd-keep.conf
Basta remover os arquivos ALL que começam com httpd.conf:
$ sudo rm httpd.conf*
Restaurar o arquivo original:
$ sudo mv httpd-keep.conf httpd.conf
Você precisa fazer backup de todos os outros arquivos que começam com "httpd.conf", se houver, antes de executar o comando rm
, conforme mostrado acima.
Você pode fazer:
rm $'httpd.conf\r'
ou
rm 'httpd.conf^M'
Você obtém ^M
pressionando Ctrl - v e então Ctrl - m .
Tags linux