Usando apenas 1 linha de comando, como eu escrevo um comando para isso fará uma longa lista de todos os arquivos no diretório armazenamento / arquivo

0

Usando apenas 1 linha de comando, como eu escrevo um comando para fazer uma longa lista de todos os arquivos no diretório storage / file e canalizar a saída para um comando grep que encontre todos os itens contendo a palavra pizza?

Seria isso?:

ls -l /storage/file | grep pizza
    
por user3026511 16.12.2013 / 21:38

2 respostas

3

Aqui você vai:

grep -l pizza /storage/file/*

Isso imprimirá os nomes de todos os arquivos em /storage/file/ que contêm a palavra pizza.

Se você quiser a longa lista desses arquivos, você pode fazer qualquer um destes:

ls -l $(grep -l pizza /storage/file/*)
grep -l pizza /storage/file/* | xargs ls -l
    
por 16.12.2013 / 21:40
0

Existe sempre o seu amigo, o comando find .

find /storage/file -name '*pizza*' -exec ls -l {} \;

Observe as aspas simples ao redor do nome para evitar que o shell expanda o glob cedo demais. Este formulário tem o bônus sendo facilmente adaptado para também procurar nos arquivos:

find /storage/file -name '*pizza*' -exec grep cheese {} \;

Isso localiza todos os arquivos nomeados com pizza no nome do arquivo e mostra todos os lugares que eles mencionam.

Ou você quis dizer apenas encontrar todos os arquivos falando sobre pizza em um diretório e depois listá-los?

ls -l $(grep -l pizza /storage/file/*)
    
por 17.12.2013 / 00:39

Tags