Touch
如何為樹上的每個目錄創建一個文件?
對於以下樹結構:
. └── dir1 └── dir2 └── dir3
為每個目錄創建文件(可能為空)的簡單方法是什麼,因此生成的樹將如下所示:
. ├── dir1 │ ├── dir2 │ │ ├── dir3 │ │ │ └── README │ │ └── README │ └── README └── README
你可以用 find 做到這一點:
find . -mindepth 1 -type d -exec touch "{}/README" \;
解釋
-mindepth 1
將設置最小深度,避免包括目前目錄-type d
只會找到目錄-exec
將執行一個命令{}
包含找到的目錄的路徑如果您只想使用內置的 shell 命令:
for dir in *; do if [ -d "$dir" ]; then touch "$dir/README"; fi; done
解釋
for
將遍歷 中的每個元素*
,即目前目錄中的所有文件。dir
將在循環期間包含目前元素。if [ -d $dir ]
檢查元素是否是目錄,然後才檢查README
在包含的目錄名稱中創建一個名為的文件$dir