我正在尝试存档一些较旧的文件,但不想触及所有当前正在使用的文件。要求find
排除“正在使用”文件的最佳方法是什么?
现在我正在研究这个命令,但我问是否有更好的(我的find
表达稍微复杂一些,但以此为例)
find /tmp/ -type f \( -exec fuser -s {} \; -o -print \)
答案1
我认为答案是有没有稍微不那么复杂的东西?是不。
我尝试了您的示例并且它确实起作用了...
$ find . -type f \( -exec fuser -s {} \; -o -print \)
./a_temp_file
./another_temp_file
$ ( sleep 10 ) > file_open_for_10_secs &
[2] 31969
$ find . -type f \( -exec fuser -s {} \; -o -print \)
./a_temp_file
./another_temp_file
$
[2]+ Done ( sleep 10 ) > file_open_for_10_secs
$ find . -type f \( -exec fuser -s {} \; -o -print \)
./file_open_for_10_secs
./a_temp_file
./another_temp_file
显然,您可能还应该查找上次写入时间超过一定时间的文件,因为您不想乱弄脚本中正在使用的临时文件,但除此之外,我看不到更简单的解决方案。