2

I have created the directory structure for my Maven project.

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

7 directories, 2 files

Now I'd like to persist the structure to .git, which requires creating dummy files in sub-directories. How can I (recursively) add empty .gitkeep files to all empty sub-directories?


Following questions already discuss (recursive) creation of empty files in sub-directories, but I'd like the files to be created only in leaf directories and not in any intermediate directories

5

From Ryan Armstrong's blog, here's how you do it

find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;
  • find . -type d (recursively) looks for directories under current path
  • -empty filters out directories that already contain something
  • -not -path "./.git/*" ensures no files are created inside .git directory
  • -exec touch {}/.gitkeep \; creates empty .gitkeep file in each directory matching above criteria

The resulting structure looks like

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

7 directories, 7 files

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.