当我将项目添加到 Git 时,我想维护包含空文件夹的文件夹结构。众所周知,Git 不跟踪空文件夹。因此,您需要在空文件夹中添加某种占位符。
到目前为止,我已经设法使用以下命令找到递归空文件夹:
find ./* -type d -empty
我该如何继续?那么在命令之后每个空文件夹都包含一个名为“空”的文件?
答案1
find . -type d -empty -exec touch {}/empty \;
答案2
touch empty
在目录中运行。
find ... -execdir touch empty \;
答案3
强制性的“你可以用 bash 来做到这一点”答案:
shopt -s globstar nullglob
for f in ./**/; do [[ $(echo "$f"*) == '' ]] && touch "$f"empty; done
Globstar 的意思是“**
递归地扩展到该目录中的每个文件”;**/
意味着它只会扩展到目录,而不是常规文件(因为文件名不能包含正斜杠)。
Nullglob 意味着不匹配任何内容的 glob 会扩展为空字节。该测试检查是否发生这种情况(这意味着目录中没有任何内容);如果测试结果为 true(这意味着目录中没有任何内容),则它touch
在empty
目录中。