Ok, eu tenho um monte de arquivos começando com um traço, -. O que não é tão bom ... e quero renomeá-los. No meu caso particular, eu gostaria apenas de colocar um personagem na frente deles.
Eu encontrei a seguinte linha que deve funcionar, mas por causa do traço não:
for file in -N*.ext; do mv $file x$file; done
Se eu colocar um echo
na frente do mv
, recebo um monte de
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
O que está correto, exceto, é claro, que o primeiro nome do arquivo será opções. Então, quando eu remover o echo
e executá-lo, é só pegar um monte de
mv: illegal option -- N
Eu tentei mudar para
for file in -N*.ext; do mv "$file" "x$file"; done
mas as aspas são apenas ignoradas parece. Tentei usar aspas simples, mas a variável não foi expandida ... O que eu faço aqui?
Atualização: agora também tentei citar as aspas. Assim:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
E quando eu digo isso, parece correto, mas quando eu o executo eu acabo de receber
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
Eu não tenho ideia de como fazer isso agora ... suspiro