Na camada BSD, uma barra é o separador de caminho. Quando você encontra um nome de arquivo com uma barra invertida, o kernel traduz a barra% -/
para dois pontos - :
. Assim, um nome de arquivo no aplicativo localizador pode parecer com foo/bar
, mas na camada BSD parece foo:bar
.
Portanto, para percorrer a árvore de diretórios, use find
para localizar arquivos com :
em seus nomes. Em seguida, use um script in-line com -execdir
para remover os dois-pontos (barras no aplicativo localizador) dos nomes de arquivos.
find . -type f -name '*:*' -execdir bash -c ' for file
do
echo mv -- "${file}" "${file//:}"
done' sh {} \;
Isso listará apenas o comando mv
e os operandos. Se você achar que a saída vai lhe dar os resultados desejados, remova o echo
.