(Resolvido) -Bash /Bin /MV Lista de argumentos muito tempo
- 2317
- 229
- Randal Kuhlman
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
- 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/ \;
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 ".
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.
- « Expressão da sequência de bash (defina o alcance)
- Como instalar o python 3.10 no Ubuntu, Debian & Linux Mint »