Se o diretório estiver vazio, faça isso, se o diretório não estiver vazio, faça isso [duplicado]

4

Até agora eu tenho isso. Existe uma maneira mais eficiente?

if ls -1 $HOME/path/to/folder/* >/dev/null 2>&1
then
        echo Directory is not empty.
else
        echo Directory is empty.
fi
    
por David Custer 24.11.2013 / 09:13

1 resposta

5

Este é um exercício padrão em todos os livros / blogs / manuais sobre shells: no bash

 [ "$(ls -A /path/to/directory)" ] && echo "Not Empty" || echo "Empty"

O Bash não tem um teste padrão para um diretório estar vazio, como [-f file], então temos que escrevê-lo. O teste & então 1 || ou 2 é uma maneira padrão de condensar uma declaração condicional do formulário

if condition is satistfied
    then do 1
else
    do 2
fi
    
por 24.11.2013 / 09:34

Tags