我试图找出准确的命令来设置自动删除Linux中特定文件夹的子文件夹。该工作应每8小时执行一次。
到目前为止我想出了什么:
find . -type d -path "./home/*****/public_html/data/*" -exec rm -rf {} \;
我尝试每分钟运行一次,但似乎没有做任何事情。应删除data
文件夹的所有子文件夹。
我究竟做错了什么?
您可以使用python来实现此目的。
创建新的python文件:
vim delete_subfolders.py
放命令:
import os
import glob
import shutil
sub_folders_pathname = '/home/*****/public_html/data/*'
sub_folders_list = glob.glob(sub_folders_pathname)
for sub_folder_or_file in sub_folders_list:
#skip deletion if this is a file
if os.path.isfile(sub_folder_or_file):
print("found a file name {}, skip deletion".format(sub_folder_or_file))
#delete the folder
else:
shutil.rmtree(sub_folder_or_file)
print("all subfolders have been deleted!!!")
保存并退出文件
跑
python delete_subfolders.py
把python放在cron作业中
尝试一下
find /home/*****/public_html/data -mindepth 1 -type d -exec rm -rf {} +
这应该可以解决问题。