Python symlink文件比X age更新,然后在文件老化后删除symlink?

Python symlink文件比X age更新,然后在文件老化后删除symlink?,python,linux,bash,unix,scripting,Python,Linux,Bash,Unix,Scripting,我每天都会收到大量文件/文件夹,这些文件/文件夹会自动排序到各种各样的文件夹中。我正在寻找一种方法来自动查找这些文件/文件夹,并在“传入”文件夹中创建指向它们的符号链接。搜索文件年龄应该足以找到文件,但是搜索年龄和所有者将是理想的。然后,一旦链接的文件/文件夹达到一定期限(例如5天),就自动从“传入”文件夹中删除指向它们的符号链接。这是否可以通过一个可以使用cron运行的简单shell或python脚本实现?谢谢 使用incron创建符号链接,然后在cron中查找-L将其断开。不太确定您希望符号

我每天都会收到大量文件/文件夹,这些文件/文件夹会自动排序到各种各样的文件夹中。我正在寻找一种方法来自动查找这些文件/文件夹,并在“传入”文件夹中创建指向它们的符号链接。搜索文件年龄应该足以找到文件,但是搜索年龄和所有者将是理想的。然后,一旦链接的文件/文件夹达到一定期限(例如5天),就自动从“传入”文件夹中删除指向它们的符号链接。这是否可以通过一个可以使用cron运行的简单shell或python脚本实现?谢谢

使用incron创建符号链接,然后在cron中查找-L将其断开。

不太确定您希望符号链接指向什么,但这里是第一个镜头:

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

find -L /usr/local/symlinks -mtime +5 -user nr -print0 | xargs -0 rm -f