如何创建累积目录?

如何创建累积目录?

我的电脑中的视频和歌曲分散在 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

答案2

考虑使用联合山, 使用aufs. 首次安装aufs-tools

sudo apt-get install aufs-tools

添加一个条目,/etc/fstab如下所示,用适当的值替换路径:

none /home/user/Videos aufs br=/home/user/Videos:/media/drive1/Movies:/media/drive2/OtherStuff 0 0

然后做:

sudo mount /home/user/Videos

~/Videos现在也应该显示所有其他目录的内容。

相关内容