递归删除同级Linux上的文件夹内的目录

时间:2014-05-07 04:52:18

标签: linux

我的结构如下:

├── Proj 1
│   ├── .git
│   ├── LICENSE
│   ├── README.md
│   └── example.cpp
├── Proj 2
│   ├── .git
│   ├── root_folder
│   └── README.md
├── Proj 3
│   ├── .git
│   ├── root_folder
│   └── README.md

...

为什么我在做rm -ri \.git时说:

rm: cannot remove `.git': No such file or directory

2 个答案:

答案 0 :(得分:2)

你可以尝试

rm -ri */.git

(不确定你想要的是什么)

答案 1 :(得分:0)

rm递归搜索的语义不适合查找和删除当前目录下的目录。 -ri标记可能会显示.git文件夹下的每个文件吗?

如果你使用的是bash,很高兴,find的单行代码可以满足您的需求:

find . -name .git -type d -exec bash -c 'read -p "$0: Delete? " -n 1 -r && echo "" &&  case $REPLY in y) rm -rf "$0" ;; esac' {} \; -prune