检查shell中目录中的复制

时间:2013-03-11 07:35:15

标签: shell

我创建了一个脚本,用于从目录inbox中选择文件。我必须在脚本中包含一个处理文件是否来自另一个进程的处理。如果文件来自另一个进程,那么我的脚本应该等到复制文件。

为此,我创建了一个标志

CHECK_COPY_PROCESS=$(ps -ef|grep -E 'cp|mv|scp'|grep inbox)

如果标志CHECK_COPY_PROCESS包含某个值,则进程将进入等待状态。但问题是假设某些文件来自该目录的子目录inbox 然后进程将生成如上所述cp file_name ..逻辑无法正常工作。

1 个答案:

答案 0 :(得分:1)

您可以使用Basile的提示,将lsof与awk结合使用(仅在第一列上进行grepping,这是命令名称)

示例:

lsof +D /path/to/inbox|awk '$1~/mv|cp|scp/'

这未经过测试,因为我目前没有需要一段时间才能在我的机器上复制的大文件。