仅将旧文件移动到另一个目录

时间:2018-05-02 09:13:54

标签: linux bash rename

我有/ files目录有很多文件。我想将它们移动到/ archive目录。移动过程需要几分钟,因为有大量的文件。

在移动过程中,我在/ files目录中创建了一个名为 new-file.jpg 的新文件。 将 new-file.jpg 移动到/ archive目录还是不会?

我需要在/ archived目录中只包含所有旧文件(当我开始zip进程时存在的文件)。如何实现?

1 个答案:

答案 0 :(得分:2)

如果你在tar cf old.tar.gz /files/*.dat中使用glob模式,那么在实际调用命令之前,bash将解析这个glob模式。因此tar命令将被称为tar cf old.tar.gz /files/1.dat /files/2.dat ...,这意味着在执行tar时创建的文件将不会被包含。

这可以看到:

files=(/files/*.dat)
touch /files/new.dat
printf '%s\n' ${files[@]} | grep -P '^/files/new.dat$'