编写以下命令执行达到预期效果 ?

查找linux系统下以txt结尾,30天没有修改的文件大小大于20K同时具有执行权限的文件并备份到/data/backup/目录下

为了达到这个预期效果,你可以使用 find 命令结合多个条件来查找符合特定要求的文件,然后使用 -exec 选项执行备份操作。以下是完成这一任务的命令示例:

find / -type f -name "*.txt" -mtime +30 -size +20k -executable -exec cp {} /data/backup/ \;
Bash

这个命令的解释如下:

  • /:指定搜索的起始目录。这里使用根目录 / 作为起点,这意味着整个系统将被搜索。根据你的需求,你可以将其替换为更具体的目录路径以减少搜索范围。
  • -type f:仅查找文件。
  • -name "*.txt":查找以 .txt 结尾的文件。
  • -mtime +30:查找最后修改时间在 30 天之前的文件。
  • -size +20k:查找大小超过 20K(千字节)的文件。
  • -executable:查找具有执行权限的文件。
  • -exec cp {} /data/backup/ \;:对于每个找到的文件,执行 cp 命令将其复制到 /data/backup/ 目录。{} 是一个占位符,代表当前找到的文件路径。

请注意,这个命令可能需要一定时间来完成,具体取决于系统中文件的数量和分布。另外,请确保 /data/backup/ 目录已经存在,且你有足够的权限在其中创建文件。如果没有,你可能需要以 root 用户身份运行该命令,或者先手动创建该目录并设置适当的权限。

由于这个命令在根目录 / 下执行,它会搜索整个文件系统,可能包括一些敏感或系统关键的目录。如果可能,限制搜索范围到用户目录或其他非关键目录可以更安全。此外,在实际执行之前,考虑使用 -exec echo {} \; 而不是 -exec cp {} /data/backup/ \; 来先打印将要复制的文件列表,以确认命令的效果符合预期。

发表评论

后才能评论