Eu tentei
apropos copy | grep "(1)"
para encontrar possíveis candidatos, e mcopy apareceu.
man mcopy
mostra uma opção promissora -D clash-option
não é legal? Mas não tão legal - não é descrito. Mas há algumas dicas para mtools.dvi, que eu procurei no meu sistema, sem sucesso, e via google, sem sucesso, mas depois, com o google, eu procurei diretamente por mcopy clash-option
e descubra este site .
Eu fiz um pequeno teste
mcopy -D A f* a
para testes de autorename e targetdir a
- em vez de autorenaming ele me pediu para cada arquivo para ignorar ou anular, esse idiota ....
Minha versão é mtools-4.0.10
e a página de ajuda é de 1996 - 15 anos. Deveríamos realmente perder alguns recursos, enquanto isso?
Eu dividiria o trabalho em duas etapas:
- Crie uma função curta, que gera um nome exclusivo para um arquivo, se esse nome estiver ocupado.
- Execute
find
e execute esse script para cada arquivo que você deseja copiar.
Devemos ajudar nessa abordagem? :)
Aqui está um script para os arquivos de nome de usuário:
#!/bin/bash
name=$1
target=$2
autorename () {
name=$1
target=$2
no=$3
test -e ${target}/${name}.$no && autorename ${name} ${target} $((no+1)) || cp ${name} ${target}/${name}.$no
}
test -e ${target}/${name} && autorename ${name} ${target} 0 || cp ${name} ${target}
e esta é a minha invocação de teste:
find -maxdepth 1 -name "fo*" -type f -exec ./autorename.sh {} /mnt/hidden/test/a ";"
Observação: -maxdepth, -name e -type, usados para restringir drasticamente o número de arquivos afetados.
Eu não testei o script para estruturas de arquivos mais profundas, nem para espaços em branco em nomes de arquivos e outros caracteres funky como linefeed, pagefeed e assim por diante.
Eu usei 0,1 porque não causa problemas na maioria dos comandos, enquanto a (e a) geralmente precisam de mascaramento.