(Resolvido) -Bash /Bin /MV Lista de argumentos muito tempo

(Resolvido) -Bash /Bin /MV Lista de argumentos muito tempo

Ao trabalhar com um grande número de arquivos no Linux, não é incomum encontrar o erro "/bin/mv: listão de argumentos por muito tempo". Este erro ocorre ao tentar mover ou renomear muitos arquivos de uma só vez e é uma limitação do sistema operacional subjacente. Neste artigo, discutiremos o que causaremos esse erro e exploraremos maneiras de contorná-lo para executar operações de arquivo em larga escala com eficiência e sem erro. Seja você um usuário iniciante ou um Linux experiente, este artigo fornecerá informações valiosas sobre a superação desse problema comum.

-BASH: /BIN /MV: Lista de argumentos muito tempo

Uma lista de argumentos por muito tempo é um problema comum com uma festa que pode acontecer quando você tem parâmetros ou argumentos de linha de comando longos. Você começa a executar um script e ele lança erros como "comando inválido" ou "muito tempo". A razão para isso é que o shell está tentando ler além do final de sua lista de argumentos e não há fim do tubo de entrada para esperar. Uma variável do sistema Arg_max define o Comprimento máximo do caractere dos argumentos Em um comando de shell.

As soluções

A solução rápida é usar Xargs Utilitário de linha de comando ou encontre comando com -exec… . Ambos os comandos quebram um grande comando em mais menores e completam o trabalho sem erros.

  • Solução 1: Encontre com Xargs
  • Para resolver esse problema, você pode usar o -print0 opção com o "encontrar" comando e o -0 opção com o comando "Xargs". Isso permitirá “Xargs” Para lidar com arquivos com espaços ou caracteres especiais em seus nomes corretamente e também permitir o processamento de um grande número de arquivos sem encontrar o erro "Lista de argumentos" por muito tempo ".

    Aqui está um exemplo:

    encontrar . -tipo f -name "*.txt "-print0 | xargs -0 mv -t ~/documentos  

    Neste exemplo, a opção -Print0 é usada com o comando "encontre" para separar arquivos com um caractere nulo em vez de uma nova linha, e a opção -0 é usada com o comando "xargs" para especificar que os itens de entrada são separados por nulo personagens. Isso permite que os "Xargs" lidem com um grande número de arquivos sem encontrar o erro "Lista de argumentos" por muito tempo ".

  • Solução 2: Encontre com Exec
  • Em vez de usar XARGs, também podemos usar -O comando EXEC. Aqui, acham os arquivos de pesquisa e executará o comando MV para cada arquivo um por um e moverá o arquivo para o diretório de destino.

    encontrar . -nome '*.txt '-exec mv  ~/ documents/ \; 

    Os comandos padrão acima navegarão recursivamente até os subdiretos. Para limitar o achado ao diretório atual, use apenas -profundidade máxima seguido de um número limite para subdiretos.

    encontrar . -nome '*.txt '-maxDepth 1 -exec mv  ~/ documents/ \; 

Conclusão

Em conclusão, o erro "MV: Lista de argumentos demais" é um problema comum ao trabalhar com um grande número de arquivos no Linux. Ocorre quando o número de arquivos passados ​​como argumentos para o comando "MV" excede o limite máximo permitido pelo sistema operacional. Para superar esse problema, podemos usar os comandos "Find" e "Xargs" para passar um grande número de arquivos como argumentos para o comando "MV", ou podemos usar ferramentas como "paralelo" ou "gnu paralelo" para executar grandes -Cale operações de arquivo com eficiência e sem erro.

Compreender as causas e soluções para o erro "/bin/mv: list de argumentos por muito tempo" é importante para quem trabalha com um grande número de arquivos no Linux e ajudará a evitar frustração e desperdiçar tempo ao executar operações de arquivo.