Exclua arquivos em um diretório que corresponda a um regexp, usando um terminal Mac

3

Como excluo arquivos em um diretório que corresponda a um determinado regexp ou uma solução semelhante usando um terminal Mac?

    
por adardesign 22.08.2010 / 15:12

2 respostas

11

Use o comando find .

Encontre todos os arquivos (recursivamente) correspondentes a um regex: find . -type f -regex '/ex/'
Encontre todos os arquivos (recursivamente) correspondentes a um regex e exclua-os: find . -type f -regex '/ex/' -exec rm {} \;

Os colchetes armazenam o nome do caminho encontrado e a barra invertida escapa do ponto-e-vírgula porque é passado para encontrar; sem fugir, seria consumido pela casca. Se isso passar por cima de sua cabeça, leia os dois primeiros capítulos de "Aprendendo a concha de bash".

Verifique as páginas de manual para find para mais opções. Há muito mais maneiras de pesquisar.

    
por 22.08.2010 / 16:16
2

Muito parecido com a resposta de jorelli. Isso é o que eu uso:

find . -regex '/ex/' -print0 | xargs -0 rm

Os argumentos -print0 e -0 fazem com que o resultado seja uma lista separada por char 0 e xargs para executar o comando rm em cada elemento da lista, portanto, caminhos com espaços não são um problema.

    
por 23.08.2010 / 01:49
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '801753',
    'url' => 'delete-files-in-a-directory-that-match-a-regexp-using-a-mac-terminal',
];

$_COOKIE = [
    'advanced-frontend' => 'ocknflfmdkmp3ld1jc7o1apgc0',
    '_csrf-frontend' => '8e651fe2d401e51f14cdff2e1b8c92361a3199c9729b2cca4de9c481f1a56893a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"C-HVql4emPt3QadQEPc7k0nF5tzyfois";}',
];

$_SESSION = [
    '__flash' => [],
];