Se você tem perl-rename
aka prename
:
find . -depth -name "*:*" -exec perl-rename 's/:2f/-/g' {} +
Sem:
find . -depth -name "*:*" |
while read -r name; do
mv -nT "$name" "${name//:2f/-}"
fi
Eu tenho um disco rígido tirado de uma unidade NAS onde os arquivos foram colocados em um Mac - No entanto, alguns dos nomes de arquivos foram, por exemplo, 'backup 16/07/14' que foi alterado para 'backup 16: 2f07: 2f14' no NAS.
Isso está causando um problema ao copiar arquivos para um novo NAS. Então, o que estou querendo fazer é simplesmente alternar o ': 2f' para '-' executando um comando em uma pasta que armazene todas essas outras pastas.
Sou razoavelmente novo no Linux, então estou preso. Eu carreguei o disco rígido no Ubuntu em uma máquina virtual.
Alguma sugestão?
Se você tem perl-rename
aka prename
:
find . -depth -name "*:*" -exec perl-rename 's/:2f/-/g' {} +
Sem:
find . -depth -name "*:*" |
while read -r name; do
mv -nT "$name" "${name//:2f/-}"
fi
Você precisa usar
sed
comando . Pode ser usado para substituir caracteres em nomes de arquivos. Você primeiro encontra arquivos com
find
comando e uso "|" para canalizá-los para sed.