Em muitas ocasiões, você encontrará nomes de arquivos e diretórios com espaços intermediários em seus nomes, especialmente aqueles que vêm do Windows. Esses espaços costumam ser irritantes, especialmente ao trabalhar a partir do shell, pois você precisa identificá-los para que não sejam tratados como nomes ou opções de comando separados. Portanto, neste tutorial vamos ver algumas maneiras de remover espaços automaticamente.
Além disso, veremos também como eles podem ser usados arquivos ou diretórios com nomes que possuem espaços sem lhe lançar um erro.
Como usar arquivos e diretórios com espaços
Para tentar espaços de fuga dos nomes dos arquivos e diretórios no terminal Linux, você pode fazer isso das seguintes maneiras:
- Incluindo "" (aspas duplas) em parte do caminho onde há espaços ou em todo ele. Por exemplo:
cd "nombre con espacio"/
- Usando um caractere \ antes de cada espaço. Por exemplo:
nano nombre\ con\ espacio.txt
Dessas maneiras, você ignore esses espaços irritantes. Agora, para não ter que usar essas opções novamente, o que pode ser mais inconveniente, você pode seguir estes passos…
Como remover espaços de nomes
Agora, você pode usar vários métodos para fazer com que esses namespaces deixem de ser um problema para sempre. Se você tiver um grande número de nomes com espaços, não é lógico fazê-los um por um, mas você pode automatizar essas tarefas para remover ou substituir espaços:
- Use o comando renomear para isso. Por exemplo, o primeiro desses comandos remove espaços de todos os arquivos .txt, enquanto o segundo remove espaços de todos os arquivos dentro do diretório atual:
renomear 's/\s/_/g' ./*.txt
renomear 's/\s/_/g' ./*.*
- Use find para substituir todos os nomes que tenham espaços, substituindo-os por _. Por exemplo, faça isso com todo o .txt do diretório atual ou de todo o FS:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;