我创建了一个脚本,用于从目录inbox
中选择文件。我必须在脚本中包含一个处理文件是否来自另一个进程的处理。如果文件来自另一个进程,那么我的脚本应该等到复制文件。
为此,我创建了一个标志
CHECK_COPY_PROCESS=$(ps -ef|grep -E 'cp|mv|scp'|grep inbox)
如果标志CHECK_COPY_PROCESS
包含某个值,则进程将进入等待状态。但问题是假设某些文件来自该目录的子目录inbox
然后进程将生成如上所述cp file_name ..
逻辑无法正常工作。
答案 0 :(得分:1)
您可以使用Basile的提示,将lsof与awk结合使用(仅在第一列上进行grepping,这是命令名称)
示例:
lsof +D /path/to/inbox|awk '$1~/mv|cp|scp/'
这未经过测试,因为我目前没有需要一段时间才能在我的机器上复制的大文件。