linux - 当我的列表中没有文件时的情况

标签 linux bash

我的脚本:

#!/bin/bash
NOW=$(date +"%Y%m%d%t%H%M%S")
# Pour chaque dossiers "log" trouvé.
for folder in $(find . -name "*log*" -type d )
    do :
        # Pour chaque dossier log contenant des fichiers ".log" vieux de +30jours.
            tar czf archive-log.$NOW.tar.gz $(find $folder -name "*.log" -mtime +30)
            # On supprime les anciens fichiers de log
            rm $(find $folder -name "*.log" -mtime +30)
    done

我的问题是:如果我有要归档的文件,我应该通过什么测试来确定? 谢谢

最佳答案

如果你想跳过没有文件要归档的情况,这可以帮助你:

if [ ! -z $(find $folder -name "*.log" -mtime +30) ]
then
   tar czf archive-log.$NOW.tar.gz $(find $folder -name "*.log" -mtime +30)
   rm $(find $folder -name "*.log" -mtime +30)
else
   echo "there are no files to archive"
fi

语法 if [ -z "string"] 检查字符串是否为空。否定它,if [ ! -z $(find...) ] 我们检查结果是否返回结果。

关于linux - 当我的列表中没有文件时的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18854018/

相关文章:

linux - 在两个 bash 脚本中覆盖一个变量

linux - 如何在 linux 系统上搜索包含文本字符串的文本文件

linux - 在 s390 上构建 MariaDB

bash - 让ssh在目标机器的后台执行命令

bash - 提取每个 ID 的主要号码和次要号码并生成 JSON 字符串

linux - 尝试 grep 位置参数

linux - 测试字符串在 Bash 中是否有非空白字符

ruby - 在不使用 RVM 的 Ubuntu 上安装 Ruby 1.9.2?

linux - 仅为我自己禁用和重新启用地址空间布局随机化

linux - 生成和执行命令的 Bash 脚本