Bash
如何在所有子目錄中創建目錄?
假設我有一個這樣的目錄結構:
$ [~ / 練習] ls A B C D/
現在我想
tmp1
在所有子目錄中創建一個目錄practice
,我這樣做:$ [~/practice] mkdir */tmp1 mkdir: 無法創建目錄 `*/tmp1': 沒有這樣的文件或目錄
然後我嘗試
-p
切換,最終得到一個以子目錄命名*
的目錄tmp1
$ [~/practice] mkdir -p */tmp1 $ [~ / 練習] ls */ A B C D/
我知道
-p
switch 的用途是創建多個不存在的目錄。我只是認為它可能會有所幫助。如何
tmp1
一次在所有子目錄中創建?如果可以做到這一點,我如何將其擴展為 create 、
\tmp1
、\tmp2
in\tmp3
和\a
一次?\b``\c
**編輯:**我錯過了提到目錄不必簡單有序,如
a
,b
等c
,並且要創建的目錄不一定如tmp1
,tmp2
。$ [~ / 練習] ls 狗/貓/鼠/
在他們身上,我想有類似的東西
$ [~ / 練習] ls * 狗: 紅藍/ 貓: 紅藍/ 鼠: 紅藍/
帶球:_
for dir in */; do mkdir -- "$dir/tmp1"; done
筆記
- 我只處理 dirs(包括到 dirs 的符號連結),並使用
*/
作為 glob的小技巧- 如果要一次創建多個子目錄:
for dir in */; do mkdir -- "$dir"/{tmp1,foo,bar,qux}; done
$$ … $$如何擴展它以同時在 \a、\b 和 \c 中創建 \tmp1、\tmp2、\tmp3?
mkdir {a,b,c}/tmp{1,2,3}