Bagaimana cara menambahkan (atau menyentuh) file secara rekursif ke direktori saat ini, serta semua sub-direktori?
Sebagai contoh,
saya ingin mengubah pohon direktori ini:
.
├── 1
│ ├── A
│ └── B
├── 2
│ └── A
└── 3
├── A
└── B
└── I
9 directories, 0 files
ke
.
├── 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
sumber
sumber
find . -type d -exec touch {}/file\;
Jika Anda hanya ingin membuat file kosong, Anda dapat menggunakan
touch
dan shell glob. Dalam zsh:Dalam bash:
Portable, Anda dapat menggunakan
find
:Beberapa
find
implementasi, tetapi tidak semua, memungkinkan Anda menulisfind . -type d -exec touch {}/file \;
Jika Anda ingin menyalin beberapa konten referensi, maka Anda harus menelepon
find
dalam satu lingkaran. Dalam zsh:Dalam bash:
Mudah dibawa:
sumber
Saat ingin
touch
file bernama $ name di direktori saat ini dan di semua subdirektori, ini akan berfungsi:Perhatikan bahwa komentar oleh ChuckCottrill ke jawaban oleh terdon TIDAK berfungsi, karena hanya
touch
file yang bernama $ name di direktori saat ini dan direktori itu sendiri.Itu tidak akan membuat file dalam subdirektori seperti yang diminta oleh OP, sementara versi ini di sini akan.
sumber
Untuk benar-benar hanya membuat file, Anda dapat menggunakan
touch
denganfind
:sumber