Respostas:
Você não deve usar renamepara renomear apenas um arquivo, use mv(1) .
Além disso, para escapar do espaço em branco, prefixe-o com um \:
"Ubuntu One" → Ubuntu\ One
Seu comando seria
mv bla\ bla.txt blabla.txt
a barra invertida informa ao bash que o próximo caractere é de alguma forma especial, por exemplo, \apara 'bell', \para um espaço literal e assim por diante
veja man ascii(7) para mais
Como alternativa, como agora você está usando o comando correto mv, pode citar o nome do arquivo se houver muitos espaços:
mv "bla bla.txt" blabla.txt
(Isso seria bla\ \ \ \ bla.txtem forma de escape)
No bash, as seqüências de caracteres entre aspas (aspas simples ou duplas) são tratadas como um único argumento, enquanto as seqüências de caracteres sem aspas serão divididas em vários argumentos, como este:
["mv", "bla", "bla.txt", "blabla.txt", ]e mvespera:
["mv", "source", "destination", ]Nota: digitar 'mv' e os primeiros caracteres do nome do arquivo e pressionar TABdará a versão escapada do nome do arquivo, tornando a renomeação rápida e fácil.
renameé usado para processar em lote a renomeação de arquivos usando expressão regular, conforme demonstrado no exemplo em sua página de manual :
rename 's/\.bak$//' *.bak
Para remover qualquer ocorrência de .bak (no final da string [$]) de todos os arquivos correspondentes a "* .bak".
renomear é um comando especializado para renomear em massa. Sem querer, o que normalmente chamamos de "renomear" é na verdade uma "mudança" para um novo nome:
mv 'bla bla .txt' blabla.txt
A=bla ; mv "$A $A .txt" blabla.txtmoverá bla bla .txt, mas A=bla ; mv '$A $A .txt' blabla.txtprocurará um arquivo chamado "$ A $ A .txt". Qualquer um deles funcionará para o seu exemplo.
rename "s/\s//g" "bla bla.txt"
s é o comando substit substit.
\ s é para whiteSpace
Você está substituindo por nada. A outra seqüência de substituição passa depois da segunda barra.
g é para Global, ou seja, substitua todas as instâncias. A omissão de g substitui apenas a primeira instância.
Este comando substituirá o espaço em branco pelo sublinhado em todos os arquivos:
rename "s/\s/_/g" *