Lista de argumentos -bash /bin /rm

Lista de argumentos -bash /bin /rm

Sintomas

Esta mensagem de erro aparece quando você tenta remover, mover ou copiar uma longa lista de arquivos. Ao usar seu shell, um comando só pode aceitar um número limitado de argumentos. Quando o número de argumentos fornecidos ao comando exceder o número permitido de argumentos, uma mensagem de erro será exibida:

-BASH: /BIN /RM: Lista de argumentos muito tempo 
Comando Linux para encontrar seu limite para obter o máximo de argumentos:
# getConf arg_max 2097152 

Exemplo:

# rm * -bash: /bin /rm: lista de argumentos muito tempo 

Solução

Há um número de soluções para este problema. Em primeiro lugar, se não houver arquivos em um diretório que gostaríamos de manter, a melhor e mais rápida solução é simplesmente remover o diretório inteiro e recriá -lo novamente. Antes de prosseguir, verifique se o diretório não contém arquivos que você deseja manter e que você tome uma nota sobre uma permissões e propriedade deste diretório.

$ CD… / $ LS -D MyDirectory $ rm -fr MyDirectory $ mkdir myDirectory 

A outra solução é envolver um loop para loop e remover todos os arquivos um é um:

$ para i em *; RM "$ i"; feito 

ou muito mais rápido pelo uso de printf e Xargs:

$ printf '%s \ 0' * | XARGS -0 RM 

ou

$ time eco -n * | tr "\ 0 '| xargs -0 rm 

No entanto, a solução acima tem sua própria limitação, pois também pode remover arquivos que gostaríamos de manter se não houver expressão regular adequada no lugar. Quanto a um exemplo aqui, vamos remover apenas *.TXT arquivos:

$ para i em *.TXT; RM "$ i"; feito 

A última e a solução proposta é usar o Regex para dividir todo o arquivo em lotes menores. Encontre um padrão semelhante em todos os arquivos e divida -os em grupos menores. Por exemplo, primeiro remova, copie ou mova todos os arquivos que começam com a e tem extensão TXT, Depois disso, todos os arquivos que começam com b e assim por diante.:

$ rm a*.txt $ rm b*.TXT 

Você também pode fazer o acima para todas as letras usando um loop para loop:

$ para i em $ (echo a… z); RM $ i*.TXT ; feito 

Tutoriais do Linux relacionados:

  • Como mover a pasta no Linux
  • Comandos básicos do Linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • VIM Editor básico no Linux
  • Bash Script: sinaliza o uso com exemplos de argumentos
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Comando de homem no Linux com exemplos
  • Ubuntu 20.04: Lista de clientes torrent
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Como gerenciar a história da Bash