Como excluir o arquivo de saída da saída ls

1

Digamos que eu tenha esses arquivos na área de trabalho:

aaa.jpg  
bbb.jpg   

Eu quero listar esses dois jpg's e enviá-los para um arquivo .txt:

#!/bin/bash
cd ~/Desktop
ls -1 > all.txt

Com este código, o all.txt teria o seguinte:

aaa.jpg  
bbb.jpg  
all.txt

Eu só quero os dois jpg's em all.txt .

    
por Gabby 26.01.2016 / 21:24

3 respostas

3

você pode ter o filtro ls somente para arquivos .jpg

ls *.jpg > all.txt
    
por 26.01.2016 / 21:30
2

obrigado pela resposta, mas eu queria listar tudo, não apenas o .jpg. Eu percebi que há uma solução simples para o que é

ls * > all.txt

em vez de

ls > all.txt

Alguém sabe por que adicionar o curinga impediria que o arquivo de saída se incluísse?

    
por 26.01.2016 / 21:49
2

Uma solução mais geral que a proposta por @ShayneManning:

ls | grep -v '^all.txt$' > all.txt

grep é usado para filtrar linhas por conteúdo. A opção -v inverte o filtro. Portanto, all.txt será excluído da saída de ls . Todos os outros nomes serão impressos em all.txt .

    
por 26.01.2016 / 21:40