Cria recursivamente um arquivo vazio em subdiretórios vazios

2

Eu criei a estrutura de diretórios para meu projeto Maven .

$ tree -a -I .git
.
├── .gitignore
├── README.md
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

7 directories, 2 files

Agora eu gostaria de manter a estrutura em .git , o que requer a criação de arquivos fictícios em subdiretórios. Como posso (recursivamente) adicionar arquivos .gitkeep vazios a todos os subdiretórios vazios ?

As seguintes questões já discutem a criação (recursiva) de arquivos vazios em subdiretórios, mas gostaria que os arquivos fossem criados somente em diretórios de folha e não em nenhum diretórios intermediários

por y2k-shubham 16.08.2018 / 20:42

1 resposta

5

De blog de Ryan Armstrong , veja como você faz isso

find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;
  • find . -type d (recursivamente) procura por diretórios sob o caminho atual
  • -empty filtra diretórios que já contêm algo
  • -not -path "./.git/*" garante que nenhum arquivo seja criado dentro de .git directory
  • -exec touch {}/.gitkeep \; cria o arquivo .gitkeep vazio em cada diretório correspondente aos critérios acima

A estrutura resultante se parece com

$ tree -a -I .git
.
├── .gitignore
├── README.md
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── .gitkeep
    │   └── resources
    │       └── .gitkeep
    └── test
        ├── java
        │   └── .gitkeep
        └── resources
            └── .gitkeep

7 directories, 7 files
    
por 16.08.2018 / 20:42