Limite de 21842 arquivos em um diretório?

16

Copiando arquivos usando o Fedora 16 do EXT2 para uma unidade NTFS de 2 TB. Descobriu que ao copiar recursivamente diretórios de muitos arquivos , a cópia para no arquivo 21842 em cada diretório ... e depois cp -rpassa para o próximo diretório. Nenhum erro é dado.

Pesquisando na web, encontrei alguém relatando esse problema sobre o FAT32 sem sucesso.

Eu posso criar mais de 21842 arquivos na unidade no mesmo sistema ... simplesmente não consigo copiar esse número.

Este é o comando que está sendo usado:

cp -r /media/BAKKER_UPPER/many_files_here/* /media/NEW_NTFS_HOME/ 

O que está acontecendo aqui? Como obtenho meus arquivos na unidade NTFS?


Não estou atingindo o limite superior de arquivos no número de arquivos em um diretório NTFS (ilimitado). Também não estou atingindo o número máximo de arquivos para a unidade .. (~ 4 bilhões). Eu também tenho muitos blocos gratuitos restantes na unidade.

jedierikb
fonte
2
Qual é o comando exato que você está usando?
#
2
Eu tenho um palpite de que você está executando o problema clássico da "lista de argumentos muito longa". Você está tentando copiar arquivos com base em um padrão de nome de arquivo? Ou você está copiando todos os arquivos na árvore de diretórios?
21412 iglvzx
5
Faça isso sem o curinga (não é necessário, de qualquer maneira). A expansão do shell transformará esse curinga em uma seqüência gigante de arquivos de origem que serão limitados ao número de bytes que o shell pode aceitar como argumento e, portanto, ao número de arquivos que você pode copiar.
Garrett
2
@ Garrett Por que você não publica isso como uma resposta, pois é bem provável que seja a resposta certa.
Mokubai
11
Done :) (upvotes apreciada!)
Garrett

Respostas:

10

Faça isso sem o curinga (não é necessário de qualquer maneira). A expansão do shell transformará esse curinga em uma seqüência gigante de arquivos de origem que serão limitados ao número de bytes que o shell pode aceitar como argumento e, portanto, ao número de arquivos que você pode copiar.

Portanto, seu novo comando seria:

cp -r /media/BAKKER_UPPER/many_files_here/ /media/NEW_NTFS_HOME/ 
Garrett
fonte