Selecione um intervalo de arquivos depois de classificá-los

2

Uma coisa que percebo mais lenta para mim se eu mudar de usar um gerenciador de arquivos GUI para o CLI é:

Em um gerenciador de arquivos GUI, posso selecionar rapidamente um subconjunto de arquivos em um diretório

  • primeiro classificá-los de acordo com alguma ordem que possa capturar consecutivamente o maior número possível de arquivos,
  • em seguida, selecionando um intervalo consecutivo de arquivos, segurando a tecla Shift e clicando no primeiro e, em seguida, no último arquivo no intervalo e
  • então, talvez clicando em alguns arquivos que não estão no intervalo consecutivo.

Na CLI, quais são algumas maneiras de selecionar um subconjunto de arquivos o mais rápido possível? Obrigado!

    
por Tim 31.07.2014 / 16:32

2 respostas

5

Com o shell zsh , isso geralmente é feito com qualificadores de globbing:

mv -- *(.om[1,10]) /dir

move os 10 arquivos regulares não ocultos mais recentes para /dir .

Com o sistema de conclusão (ativado executando compinstall ), você também pode informar zsh para expandir essa lista e selecionar quais expandir usando Alt-A .

    
por 31.07.2014 / 16:47
2

Classificação, rolagem, seleção manual de um intervalo e furos no intervalo são naturais em uma GUI.

Alguém pode argumentar que também é tedioso e propenso a erros.

No CLI (ou seja, um shell unix) você tem meios mais poderosos.

Ao classificar usando o nome do arquivo como chave, você pode usar globbing para selecionar um intervalo, por exemplo,

$ rm someprefix*mid*.[0-9]

Em uma lista ordenada, os arquivos que começam com 'someprefix' aparecerão consecutivamente - mas como temos globbing, não é necessário classificá-los explicitamente.

Mesmo com a sintaxe básica de globbing, é possível criar filtros poderosos. Shells como zsh fornecem extensões.

Você também pode usar find para combinar vários critérios, por exemplo

$ find -type f -name 'someprefix*' -not '*.txt' -print0 | xargs -0 rm

que recursivamente exclui todos os arquivos que começam com 'someprefix', mas excluem aqueles que terminam com '.txt'.

find fornece muitas opções para construir expressões, por exemplo lógicas e / ou agrupadas, para selecionar com base no tamanho do arquivo, vários timestamps, expressões regulares aplicadas ao caminho, etc.

Especialmente, a possibilidade de selecionar recursivamente (o padrão) é algo que acelera muitas tarefas. Imagine, em vez disso, fazer a mesma tarefa de seleção de intervalo repetidamente para vários diretórios em um gerenciador de arquivos da GUI ...

    
por 31.07.2014 / 23:38