用户工具

站点工具


wiki:删除无用png文件

删除无用png文件

1. 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
[~] #
[~] #

2. 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";
    }
}
wiki/删除无用png文件.txt · 最后更改: 2024/10/06 15:19 由 admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki