O término da aba Bash deve ser capaz de fazer a coisa certa aqui se você apenas digitar mv 90843_O
e pressionar a tecla tab. Caso contrário, uma maneira de escapar do nome é:
mv "90843_O\\'ConnorPaul_GeneralManager.jpg" dest.jpg
As aspas duplas removem a necessidade de escapar do '
, mas os dois caracteres de barra invertida ainda precisam ser escapados (uma barra invertida extra para cada um faz quatro barras invertidas). Outra opção é:
mv '90843_O\'\'ConnorPaul_GeneralManager.jpg dest.jpg
Aqui, colocar as barras invertidas entre aspas simples elimina a necessidade de escapar delas, mas você precisa terminar as aspas simples para adicionar um literal '
. Isso é escapado após o término das aspas.
Observe que o problema aqui tem tanto a ver com as barras invertidas no nome quanto nas aspas simples. Para substituir a sequência \'
(já que há duas barras invertidas no nome do arquivo na pergunta, ambos causarão problemas) com um sublinhado para todos os arquivos em um diretório usando um loop:
for file in *"\\'"*; do
mv -i "$file" "${file//"\\'"/_}"
done
O -i
fará com que mv
seja solicitado se algum arquivo for sobrescrito. Usando prename
( rename
links para isso em muitos sistemas):
prename -n 's:\\'\'':_:g' *"\\'"*
Remova o -n
quando estiver satisfeito e fazendo o que deseja. Observe que os caracteres de barra invertida devem ter escape dentro da expressão perl aqui, mesmo que haja aspas simples ao redor deles (sem as aspas simples você precisaria de oito barras invertidas, já que quatro seriam removidas pelo shell e não faziam parte da expressão perl).