忽略_load文件

忽略_load文件

我有一个要求,一旦加载文件,我就为其创建一个 _load 文件。例如:- 如果加载了 temp_20180101.txt,我会为此创建 temp_20180101.txt_load。

现在,在下一次运行中,我想忽略目录中存在 _load 的所有文件并选择最新的可用文件。

请告知如何在一个 linux 命令中执行此操作

答案1

第一个示例(递归查找文件,使用find):

find . -type f -name 'temp_*.txt' -exec sh -c '[ ! -e "$0"_load ]' {} ';' -print

temp_*.txt这将输出当前目录(或下面)中与模式匹配但没有与之关联的相应文件的所有常规文件的名称temp_*.txt_load。然后可以由另一个-exec代替 来完成加载-print

第二个示例(更简单、显式的 shell 循环):

for name in ./temp_*.txt; do
    if [ -f "$name" ] && [ ! -e "$name"_load ]; then
        command_to_load "$name"
        touch "$name"_load
    fi
done

这是一个显式 shell 循环,仅查看当前目录中的文件。如果匹配的名称是常规文件并且没有关联的相应文件,则调用_load某些加载命令并创建文件。$name_load

人们可能想使用

command_to_load "$name" && touch "$name"_load

在 - 语句内if_load在加载顺利时创建文件。

相关内容