2010-05-02 97 views
2

我有大量的文件/文件夹每天进来,正在被自动排序到各种各样的文件夹。我正在寻找一种方法来自动查找这些文件/文件夹,并在“传入”文件夹中为它们创建符号链接。搜索文件的年龄应足以查找文件,但搜索年龄和拥有者将是理想的。然后,一旦链接的文件/文件夹达到某个年龄(例如5天),则从“传入”文件夹自动删除符号链接。这可能与一个简单的shell或python脚本可以用cron运行吗?谢谢!符号链接文件比X年龄更新,然后稍后删除符号链接一次文件年龄?

回答

2

使用incron创建符号链接,然后在cron中使用find -L来破解它。

1

不太清楚你想要什么符号链接但这里有一个第一枪:

find /incoming -mtime -5 -user nr -exec ln -s '{}' /usr/local/symlinks ';' 

查找在/incoming通过nr拥有少于5天的老东西,并将其链接到/usr/local/symlinks。不幸的是ln没有一个很好的选项来忽略已经存在的东西。你是断写,在连接东西剧本好,并在同一时间,你可以让事情变得更高效:

find /incoming -mtime -5 -user nr -print0 | xargs -0 mylink 

哪里mylink如果你想甚至更具有

#!/bin/bash 
for i 
do 
    link=/usr/local/symlinks/"$(basename "$i")" 
    [[ -L "$link" ]] || ln -s "$i" /usr/local/symlinks 
done 

有效的,你可以累积文件列表 在一个数组中,并且将它们全部用一个ln命令链接起来,但这是很多符号,我可能不会打扰。

要删除符号链接那点超过5天文件:

find -L /usr/local/symlinks -mtime +5 -user nr -exec rm '{}' ';' 

或者你可以再次使用xargs