Em bash, execute shopt -s extglob
(ou coloque-o no seu ~/.bashrc
) e você pode usar padrões adicionais que fornecem expressões regulares com uma sintaxe incomum (herdada do ksh). Você também pode usar esses padrões no ksh, é claro, e também no zsh depois setopt ksh_glob
.
$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
No zsh, você pode usar diretamente (foo|bar)
como padrão.
% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
Observe que o comando é chamado com o caminho completo. Se você deseja chamar o comando com um caminho curto, precisará alterar o diretório de alguma forma e (cd /opt/somedir && somecommand aa bb cc)
é de longe a maneira mais fácil.
Gilles 'SO- parar de ser mau'
fonte
Você pode filtrar usando
egrep
:Para encontrar todos os arquivos de texto:
fonte
Primeiro, eu o dirijo a: nunca analise sl , nunca . A maneira correta e canônica de fazer o que você quer é encontrar .
Por exemplo:
Eu costumo usar em
-name
vez de-regex
, pois é mais simples. Mas uma regex se adapta ao seu caso de uso. Você deve executar o comando sem-exec
a primeira vez, para garantir que eles sejam os arquivos que você deseja mover / excluir.fonte