====== 删除无用png文件 ======
===== - python程序 =====
python3代码,可直接在qnap上运行。
[~] # cat ./del_unused_png_in_wiki.py
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
# source /etc/profile.d/python3.bash
# python3 ./del_unused_png_in_wiki.py
import re
import sys
import os
import os.path
file_list = []
def search(path):
for entry in os.scandir(path):
if entry.is_file():
file_list.append(entry.path)
#print(entry.path)
else:
search(path+'/'+str(entry.name))
if __name__=='__main__':
#path = sys.argv[1]
path = "/share/Web/wiki/data/media"
search(path)
for tmp in file_list:
if (re.search(r'pasted', tmp) == None):
continue
if (re.search(r'png', tmp) == None):
continue
name = os.path.basename(tmp)
#print(f'tmp = {tmp}, name = {name}')
ret = os.system(f'grep {name} /share/Web/wiki/data/pages/* -r -q')
#print(f'ret = {ret}')
if (ret != 0):
print(f'rm -rf {tmp}')
[~] #
[~] # source /etc/profile.d/python3.bash
[~] # python3 ./del_unused_png_in_wiki.py
[~] #
[~] #
===== - perl程序 =====
执行下面这个perl脚本,为显示出未使用的png文件,然后可以手动将其删除。
#!/usr/bin/perl
use File::Basename;
$wiki_path = "/var/www/html/dokuwiki";
$findret = `find $wiki_path/data/media -name *.png`;
@ar = split(/\n/, $findret);
foreach $line (@ar) {
$name = &basename($line);
$ret = `grep $name $wiki_path/data/pages/* -r`;
if ($ret eq "") {
print "rm -rf $line\n";
}
}