2014-02-26 56 views
0

我想在bash/python中编写一个脚本,它可以递归删除一个文件夹,里面没有'.txt'文件。Bash/python - 以条件递归删除文件夹

例如:

| Folder1/   --> keep 
|--SubFolderA/  --> keep 
|----file.txt 

| Folder2/   --> delete 

| Folder3/   --> keep 
|--subFolderA/  --> keep 
|----file.txt 

| Folder4/   --> delete 
|--SubFolderA/  --> delete 
|----SubFolderB/ --> delete 
|------file.py 

| Folder5/   --> keep 
|--SubFolderA/  --> keep, because .txt file is in SubFolderB 
|----file.sh 
|----SubFolderB/ --> keep 
|------file.txt 

| Folder6/   --> keep 
|--SubFolderA/  --> keep 
|----file.txt 
|----SubFolderB/ --> delete 
|------file.py 
+1

@jonrsharpe我想他要你做它对他来说大声笑 – btse

+0

我看bash vith find + rm函数,但我没有成功 – user3356301

+0

@ user3356301然后发布你实际尝试过的代码,比“不成功”更详细(例如完整的错误消息或输入以及预期和实际产出)。 – jonrsharpe

回答

0

绝对使用发现。像这样:

find /path -type f -name "*.txt" -exec rm -rf {} \; 

我不会写if语句给你,但应该让你开始...其实什么:

path=the/path/to/the/directory/ 
myvar=$(find $path -type f -name "*.txt" -exec rm -rf {} \;) 
if [ -z $myvar ] 
then 
rmdir $path 
else 
#don't do anything...keep it 
fi