Eu executo o seguinte comando para livrar recursivamente pastas de caracteres que causam problemas com certos aplicativos, scripts ou em NFS/SMB, ou seja, altere '
para ’
, ?
para ?
(chinese char), :
para :
(chinese char), etc.
$ find . -type d -execdir /usr/local/bin/rename "s/'/’/g" '{}' +
( rename
é o script perl de Aristóteles Pagaltzis)
O problema é que se um determinado caminho tiver duas ou mais ocorrências dos caracteres acima em dois níveis diferentes, ele falhará ao fazer a modificação na segunda vez, pois o caminho inicial não existe mais, por exemplo, em /data/videos/john's pics/folder/last year's bday/folder/
, ele falhará com No such file or directory.
devido a ter dois '
.
Estou pensando em executar o find
comando acima recursivamente de baixo para cima, mas não sei como fazer isso e se essa é a melhor abordagem.
Usar find
ou qualquer outro script/ferramenta nix como awk
, etc., está bom para mim.