我的电脑中的视频和歌曲分散在 8 个驱动器和我不知道的目录中。如何在 /home/user 中创建一个目录来自动更新我电脑上的视频快捷方式?
答案1
您可以定期运行下面的“维护”脚本来更新带有链接的文件夹(例如通过 cron 作业或在“启动应用程序”中,见下文)。
脚本的作用
该脚本列出最多 10 个不同目录(或驱动器)中的所有视频文件(按扩展名),并检查“库”文件夹中是否存在同名链接。如果不存在,则创建链接。
尽管您要求它提供视频文件,但通过这种方式您可以保留任何特定文件类型的文档的“库文件夹”。
它运行得非常快:从几乎已满的 750GB(慢速/外部)磁盘更新,我只花了 4 秒,因此不会给您的系统造成很大的负担。
如何使用
- 将下面的脚本复制到一个空文件中并将其保存为
update_links.py
。 如果需要,在 head 部分设置要创建链接的文件扩展名。我已经将其设置为:
extensions = (".flv", ".mp4", ".mp3", ".mkv")
就像您在评论中提到的那样。
还要设置包含视频链接的文件夹路径:
library = "/path/to/your/library_folder"
该脚本最多接受 10 个目录作为参数。要运行它,请使用以下命令:
python3 <script> <directory_1> <directory_2> <directory_3> <directory_4>
您可以将命令添加到启动应用程序中:(Dash > “启动应用程序” > “添加”)或通过 cron 作业运行它。
剧本
#!/usr/bin/env python3
import os
import sys
import subprocess
library = "/path/to/your/library_folder"
extensions = (".flv", ".mp4", ".mp3", ".mkv")
def create_links(directory):
for root, dirs, files in os.walk(directory):
for name in files:
if (name.startswith("."), name.count(".") == 0) == (False, False):
extension = name[name.rfind("."):]
if (extension in extensions, os.path.isfile(library+"/"+name)) == (True, False):
command = 'ln -s "'+root+"/"+name+'" "'+library+"/"+name+'"'
subprocess.Popen(["/bin/bash", "-c", command])
else:
pass
else:
pass
i = 1
while i <= 10:
try:
dr = (sys.argv[i])
create_links(dr)
i = i+1
except IndexError:
break