Jak rekurencyjnie dodać (lub dotknąć) plik do bieżącego katalogu, a także do wszystkich podkatalogów?
Na przykład
chciałbym zmienić to drzewo katalogów:
.
├── 1
│ ├── A
│ └── B
├── 2
│ └── A
└── 3
├── A
└── B
└── I
9 directories, 0 files
w
.
├── 1
│ ├── A
│ │ └── file
│ ├── B
│ │ └── file
│ └── file
├── 2
│ ├── A
│ │ └── file
│ └── file
├── 3
│ ├── A
│ │ └── file
│ ├── B
│ │ ├── file
│ │ └── I
│ │ └── file
│ └── file
└── file
9 directories, 10 files
bash
command-line
directory
recursive
Trevor Hickey
źródło
źródło
find . -type d -exec touch {}/file\;
Jeśli chcesz tylko utworzyć pusty plik, możesz użyć
touch
globu powłoki. W Zsh:W bash:
Przenośnie możesz użyć
find
:Niektóre
find
implementacje, ale nie wszystkie, pozwalają pisaćfind . -type d -exec touch {}/file \;
Jeśli chcesz skopiować niektóre materiały referencyjne, musisz zadzwonić
find
w pętli. W Zsh:W bash:
Przenośny:
źródło
Jeśli chcesz uzyskać
touch
pliki o nazwie $ name w bieżącym katalogu i we wszystkich podkatalogach, zadziała to:Zauważ, że komentarz ChuckCottrill do odpowiedzi terdon NIE działa, ponieważ będzie to tylko
touch
plik o nazwie $ name w bieżącym katalogu i sam katalog.Nie będzie tworzyć plików w podkatalogach zgodnie z żądaniem OP, podczas gdy ta wersja tutaj.
źródło
Aby faktycznie utworzyć plik, możesz użyć
touch
zfind
:źródło