Em um grande diretório no meu sistema Ubuntu (> 140.000 arquivos e> 200 subdiretórios), sei que em algum lugar existem dois arquivos com nomes muito longos para serem copiados para uma pasta do Windows (NTFS). Eu tentei e recebi duas mensagens de erro, mas não prestei atenção em quais subpastas os arquivos estavam.
Como posso encontrar os dois arquivos com os nomes mais longos?
Acho que a solução do @steeldriver é uma escolha melhor, no entanto, aqui está minha solução alternativa: você pode usar uma combinação de comandos para encontrar exatamente dois (ou mais) nomes de arquivo mais longos.
a saída seria como:
Aqui um exemplo real:
Notas
find
nos dá uma lista de todos os arquivos dentro desse diretório como:usando
awk
, adicionamos o tamanho do arquivo ao início de cada linha (é exatamente o tamanho do arquivo, não o caminho):finalmente, classificamos com base no tamanho do arquivo e obtemos as duas primeiras linhas usando
head
.Com base nos comentários, o que você realmente precisa neste caso é uma lista de todos os arquivos cujos nomes são maiores que um número máximo de caracteres - e felizmente isso é relativamente fácil usando um
find
regex :Para um número tão grande de arquivos e diretórios, você provavelmente deseja evitar a classificação - em vez disso, vamos apenas manter um registro contínuo dos nomes de arquivos mais longos e segundos mais longos e seus nomes de caminho completos:
ou com GNU awk (que suporta arrays 2D)