删除早于1天的文件夹无法使用“查找” cmd

时间:2019-05-17 10:21:45

标签: bash

我正在尝试使用find命令删除早于1天(创建日期)的备份文件夹,但是它不起作用

文件夹ls -l:

drwxrws---+ 2 root data 42 Mai 15 16:46 15-05-2019
drwxrws---+ 2 root data 89 Mai 16 14:19 16-05-2019

创建日期为15 Mai。

此cmd应该起作用:

find /data/backup/VMs/centos/ -type d -mtime +1 -exec rm {} \;

我首先尝试了此操作,以了解删除之前发生的情况:

find /data/backup/VMs/centos/ -type d -mtime +1 -exec ls {} \; >> find_test.txt

它应该将要删除的文件夹写入文件,但txt文件为空。

除了使用查找之外,如何使用名称中的日期删除此文件夹?

1 个答案:

答案 0 :(得分:0)

rm通常不会在标准输出上打印,但是,如果发生错误,则会打印为标准错误,也可以将其重定向到另一个文件或复制文件描述符2>&1的相同错误

find /data/backup/VMs/centos/ -type d -mtime +1 -exec ls {} \; >> find_test.txt 2>&1

要打印名称,可以使用find -print操作,还可以找到具有操作-delete-ls(与ls并不完全相同)的操作,以避免在每个文件

find /data/backup/VMs/centos/ -type d -mtime +1 -print -delete >> find_test.txt 2>&1

在使用-delete之前要小心,以免丢失不需要的文件