【发布时间】:2018-09-13 09:06:37
【问题描述】:
我正在尝试找出精确的命令来设置自动删除 Linux 中特定文件夹的子文件夹。该作业应每 8 小时执行一次。
到目前为止我想出了什么:
find . -type d -path "./home/*****/public_html/data/*" -exec rm -rf {} \;
我尝试每分钟运行一次,但它似乎没有任何作用。
data 文件夹的所有子文件夹都应该被删除。
我做错了什么?
【问题讨论】:
我正在尝试找出精确的命令来设置自动删除 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 {} +
这应该可以解决问题。
【讨论】: