我有大量的文件/文件夹进来,每天都被自动sorting到各种各样的文件夹。 我正在寻找一种方法来自动查找这些文件/文件夹,并创build符号链接到一个“传入”文件夹中的所有。 search文件的年龄应该足以查找文件,但search年龄和所有者将是理想的。 然后,一旦文件/文件夹链接到一定的年龄,例如5天,从“传入”文件夹中自动删除它们的符号链接。 这可以做一个简单的shell或python脚本,可以与cron运行吗? 谢谢!
使用incron创建符号链接,然后在cron中find -L
来打破它。
不太清楚你想要的符号链接,但这是第一个镜头:
find /incoming -mtime -5 -user nr -exec ln -s '{}' /usr/local/symlinks ';'
查找/incoming
nr
任何内容,并将其链接到/usr/local/symlinks
。 不幸的是,没有一个很好的选择来忽略已经存在的东西。 你最好写一个连接事物的脚本,同时你可以使事情变得更有效率:
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
:
find -L /usr/local/symlinks -mtime +5 -user nr -print0 | xargs -0 rm -f