Eu tenho uma enorme árvore de arquivos. Alguns arquivos têm o mesmo nome, mas em casos diferentes, por exemplo, some_code.c
e Some_Code.c
.
Então, quando estou tentando copiá-lo para um sistema de arquivos NTFS / FAT, ele me pergunta se quero que ele substitua o arquivo ou ignore-o.
Existe alguma maneira de renomear automaticamente esses arquivos, por exemplo, adicionando (1)
ao nome do arquivo de conflito (como o Windows 7)?
sudo fdisk -l /dev/sda
), e fiztouch foo; touch Foo
e terminou com 2 arquivosfoo
eFoo
. Mas não estou curioso para reiniciar o Windows, para ver como eles são lá. Pode ser apenas um problema de FAT? Ah - Eu tenho um pendrive com FAT e poderia criar um sistema FAT dentro de um arquivo ... - um momento, por favor. :)Respostas:
Muitas ferramentas GNU, como
cp
,mv
etar
suportam a criação de arquivos de backup quando o destino existe. Ou seja, ao copiarfoo
parabar
, se já houver um arquivo chamadobar
, o existentebar
será renomeado e após a cópiabar
conter o conteúdo defoo
. Por padrão,bar
é renomeado parabar~
, mas o comportamento pode ser modificado:Existem outras variantes, como a criação de backups numerados somente quando já existe. Veja o manual do coreutils para mais detalhes.
fonte
brew install coreutils
e use o comandogcp
.eu tentei
para encontrar possíveis candidatos, e o mcopy apareceu.
mostra uma opção promissora
-D clash-option
não é legal? Mas não é tão legal - não está descrito. Mas existem algumas dicas para o mtools.dvi, que pesquisei no meu sistema, sem sucesso, e via google, sem sucesso, mas depois, com o google, pesquisei diretamentemcopy clash-option
e encontrei este site .Fiz um pequeno teste
para testes de nome do autor e targetdir
a
- em vez de nomear o autor, ele pediu que todos os arquivos ignorassem ou substituíssem, que idiotice ...Minha versão é
mtools-4.0.10
e a página de ajuda é de 1996 a 15 anos. Devemos realmente perder alguns recursos, enquanto isso?Eu dividiria o trabalho em duas etapas:
find
e execute esse script para cada arquivo que você deseja copiar.Devemos ajudar nessa abordagem? :)
Aqui está um script para arquivos de nome de autor:
e esta é minha invocação de teste:
Nota: -maxdepth, -name e -type foram usados para restringir drasticamente o número de arquivos afetados. Não testei o script para estruturas de arquivos mais profundas, nem para espaços em branco nos nomes de arquivos e outros caracteres descolados, como avanço de linha, avanço de página e assim por diante.
Eu usei .1 porque não cria problemas na maioria dos comandos, enquanto a (e a) geralmente precisam ser mascarados.
fonte
Não com o GNU
cp
, pelo menos.É altamente recomendável que você não tenha nomes de arquivos duplicados (ignorando maiúsculas e minúsculas), pois eles causarão um grande sofrimento a você. Encontre uma lista dessas duplicatas usando
Em seguida, renomeie manualmente um dos arquivos para cada linha, se for exibido. Tente evitar criar duplicatas no futuro.
fonte