como executar recursivamente "toque vazio" se uma pasta estiver vazia?

1

Eu quero manter uma estrutura de pastas que contenha pastas vazias quando eu adicionar um projeto ao Git. Como todos sabem, o Git não rastreia pastas vazias. Então você precisa adicionar algum tipo de espaço reservado dentro de uma pasta vazia.

Até agora eu consegui descobrir pastas recursivamente vazias com este comando:

find ./* -type d -empty

Como eu continuo? Então, depois de um comando, cada pasta vazia contém um arquivo chamado "vazio"?

    
por hemppa 11.06.2013 / 22:00

3 respostas

2

Execute touch empty no diretório.

find ... -execdir touch empty \;
    
por 11.06.2013 / 22:07
1
find . -type d -empty -exec touch {}/empty \;
    
por 10.07.2013 / 22:12
0

Obrigatória 'você pode fazer isso com bash' resposta:

shopt -s globstar nullglob
for f in ./**/; do [[ $(echo "$f"*) == '' ]] && touch "$f"empty; done

Globstar significa que ** se expande para 'todos os arquivos neste diretório, recursivamente'; **/ significa que ele só será expandido para diretórios, em vez de arquivos regulares (já que os nomes de arquivos não podem conter barras invertidas).

Nullglob significa que globs que não correspondem a nada se expandem para um nullbyte. O teste verifica se isso acontece (o que significa que não há nada no diretório); se o teste for avaliado como verdadeiro (o que significa que não há nada no diretório), então touch es empty no diretório.

    
por 11.06.2013 / 23:09