下载完PT任务后,有些文件名不方便阅读,尤其是给家人下载影音文件时,还要告诉他对应的英文目录,很麻烦,如果直接修改目录或者文件名就会导致种子对应的文件找不到,影响分享率,那如何解决呢?
方法适用于linux,并带有python3的环境下使用。
为了方便归类,我将电影、剧集、音乐分为movie/teleplay/music 三个不同的文件夹进行webdav和smb共享,如果这个资源不再需要会转移到做种目录pt,这样在共享里就看不到对应的文件,硬盘空间不足时在pt目录删除最早下载的文件。
1. 拷贝副本
简单粗暴的方法是另外复制一份文件,一个用来播放,一个保持做种,适合家里有矿的朋友。
2. 使用软链接“重命名”文件
软链接类似于windows系统的快捷方式,mac系统的替身,可以随意修改链接名称,命令为:
ln -s 源文件路径 新目标路径
比如将图片里的文件 The.Rescue.2021.2021.Blu-ray.1080p.DTS-HD.MA.5.1 x264-HDH 修改名称,并转移到movie目录,方便查看文件的同时还能保持分享做种,命令为:
ln -s /your/path/pt/The.Rescue.2021.2021.Blu-ray.1080p.DTS-HD.MA.5.1 x264-HDH /your/path/movie/泰国洞穴救援
目录或者文件名可以通过右键资源选择 rename 来查看
这样改名和做种都同时满足了,但每次都要拼接命令,麻烦还容易出错,可以使用脚本替代
3. 使用python完成自动拼接命令
#!/usr/bin/env python
# coding=utf-8
import logging
import subprocess
file_path = "你的下载目录"
input_file_str = input("输入目录或者文件名: ")
input_file_type = input("文件类型(1:电影 2:电视剧 3:音乐): ")
input_custom = input("输入自定义文件名: ")
LOG_PATH = "你的日志目录/lns.log"
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename=LOG_PATH,
filemode='a')
def lns():
try:
type_name = ""
# 可根据需求自定义目录名称
if input_file_type == "1":
type_name = "movie/"
elif input_file_type == "2":
type_name = "teleplay/"
elif input_file_type == "3":
type_name = "music/"
run_out = subprocess.run(
["ln", "-s", file_path + input_file_str, file_path + type_name + input_custom],
stderr=subprocess.PIPE)
returncode = run_out.returncode
out_str = bytes.decode(run_out.stderr)
command_str = "ln " + "-s " + file_path + input_file_str + " " + file_path + type_name + input_custom
if returncode == 0:
logging.info(
"success: " + command_str)
else:
logging.error("error:" + out_str)
except Exception as e:
print(e)
logging.error(e)
lns()
将文件保存为 lns.py 并添加可执行权限
chmod +x lns.py
使用前需要修改下载目录 file_path 和日志目录 LOG_PATH 为你自己的路径,然后使用 ./lns.py 运行,根据提示输入即可。
这样就稍微方便一些,如果有更优雅的改名方式还请留言交流。