如何删除目录中超过一天的所有 files/driectories?
How do I delete all files/driectories within my directory that are older than a day?
我正在使用亚马逊 Linux 和 bash shell。我想删除某个目录中超过一天的所有目录和文件,所以我尝试了运行这个语句
sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -name "*" -type f -mmin +1441 -delete
然而,紧接着运行,当我检查目录时,仍然有超过一天的子目录......
[mike@mymachine /]$ ls -al /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs
total 240
drwxr-xr-x 17 jboss jboss 4096 Sep 20 23:24 .
drwxr-xr-x 5 jboss jboss 4096 Jun 24 2013 ..
drwxr-xr-x 186 jboss jboss 24576 Sep 20 21:12 deployment2368807199465dba
drwxr-xr-x 93 jboss jboss 20480 Sep 20 23:23 deployment2617ff35c8bff41a
drwxr-xr-x 6 jboss jboss 24576 Sep 19 20:26 deployment3571c00385713fe3
drwxr-xr-x 2 jboss jboss 20480 Sep 19 17:39 deployment3d351ede58f283dd
drwxr-xr-x 2 jboss jboss 20480 Sep 19 15:25 deployment4290f5e8ea8315f2
drwxr-xr-x 297 jboss jboss 24576 Sep 22 03:30 deployment9b31473d9eac9da0
drwxr-xr-x 2 jboss jboss 24576 Sep 20 18:56 deploymentceee45a133e7107d
drwxr-xr-x 93 jboss jboss 20480 Sep 19 18:55 deploymentefd5fbdbb2c4c444
drwxr-xr-x 2 jboss jboss 4096 Sep 20 18:57 temp165d12bb32054951
drwxr-xr-x 2 jboss jboss 4096 Sep 19 17:40 temp32dd5d98d5a4b497
drwxr-xr-x 2 jboss jboss 4096 Sep 19 15:26 temp59d119fda3e5ddc4
drwxr-xr-x 2 jboss jboss 4096 Sep 19 20:27 temp7f6ba3704ffeea57
drwxr-xr-x 2 jboss jboss 4096 Sep 20 23:23 temp861658110cf44173
drwxr-xr-x 2 jboss jboss 4096 Sep 19 18:56 tempcdad4bb17e60cb75
drwxr-xr-x 2 jboss jboss 4096 Sep 20 21:13 tempe1ee5a5f7f5c7636
编写删除某个目录中超过一天的所有内容的语句的正确方法是什么?
编辑:嘿,你的建议没有用。我收到这个错误
[mike@mymachine ~]$ sudo find /usr/java/jboss/standalone/tmp/vfs/ -mindepth 1 -mtime +1 -delete
find: cannot delete `/usr/java/jboss/standalone/tmp/vfs/deploymentefd5fbdbb2c4c444': Directory not empty
find: cannot delete `/usr/java/jboss/standalone/tmp/vfs/deployment3571c00385713fe3': Directory not empty
尝试使用'-exec'选项而不是'-delete',然后你可以在每个文件上添加你想要的任何命令,包括一个非常可怕的'rm -rf'。
例如,要对超过一天的每个文件调用 'echo -n',则 运行 以下。注意 '{}' 是找到的 file/directory.
的占位符
sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -mindepth 1 -mmin +1441 -exec echo -n {} \;
编辑为包含“-mindepth 1”,否则根搜索目录包含在结果中。
因此,要递归删除指定目录中超过 1 天的所有内容:
sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -mindepth 1 -mmin +1441 -exec rm -rf {} \;
我正在使用亚马逊 Linux 和 bash shell。我想删除某个目录中超过一天的所有目录和文件,所以我尝试了运行这个语句
sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -name "*" -type f -mmin +1441 -delete
然而,紧接着运行,当我检查目录时,仍然有超过一天的子目录......
[mike@mymachine /]$ ls -al /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs
total 240
drwxr-xr-x 17 jboss jboss 4096 Sep 20 23:24 .
drwxr-xr-x 5 jboss jboss 4096 Jun 24 2013 ..
drwxr-xr-x 186 jboss jboss 24576 Sep 20 21:12 deployment2368807199465dba
drwxr-xr-x 93 jboss jboss 20480 Sep 20 23:23 deployment2617ff35c8bff41a
drwxr-xr-x 6 jboss jboss 24576 Sep 19 20:26 deployment3571c00385713fe3
drwxr-xr-x 2 jboss jboss 20480 Sep 19 17:39 deployment3d351ede58f283dd
drwxr-xr-x 2 jboss jboss 20480 Sep 19 15:25 deployment4290f5e8ea8315f2
drwxr-xr-x 297 jboss jboss 24576 Sep 22 03:30 deployment9b31473d9eac9da0
drwxr-xr-x 2 jboss jboss 24576 Sep 20 18:56 deploymentceee45a133e7107d
drwxr-xr-x 93 jboss jboss 20480 Sep 19 18:55 deploymentefd5fbdbb2c4c444
drwxr-xr-x 2 jboss jboss 4096 Sep 20 18:57 temp165d12bb32054951
drwxr-xr-x 2 jboss jboss 4096 Sep 19 17:40 temp32dd5d98d5a4b497
drwxr-xr-x 2 jboss jboss 4096 Sep 19 15:26 temp59d119fda3e5ddc4
drwxr-xr-x 2 jboss jboss 4096 Sep 19 20:27 temp7f6ba3704ffeea57
drwxr-xr-x 2 jboss jboss 4096 Sep 20 23:23 temp861658110cf44173
drwxr-xr-x 2 jboss jboss 4096 Sep 19 18:56 tempcdad4bb17e60cb75
drwxr-xr-x 2 jboss jboss 4096 Sep 20 21:13 tempe1ee5a5f7f5c7636
编写删除某个目录中超过一天的所有内容的语句的正确方法是什么?
编辑:嘿,你的建议没有用。我收到这个错误
[mike@mymachine ~]$ sudo find /usr/java/jboss/standalone/tmp/vfs/ -mindepth 1 -mtime +1 -delete
find: cannot delete `/usr/java/jboss/standalone/tmp/vfs/deploymentefd5fbdbb2c4c444': Directory not empty
find: cannot delete `/usr/java/jboss/standalone/tmp/vfs/deployment3571c00385713fe3': Directory not empty
尝试使用'-exec'选项而不是'-delete',然后你可以在每个文件上添加你想要的任何命令,包括一个非常可怕的'rm -rf'。
例如,要对超过一天的每个文件调用 'echo -n',则 运行 以下。注意 '{}' 是找到的 file/directory.
的占位符sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -mindepth 1 -mmin +1441 -exec echo -n {} \;
编辑为包含“-mindepth 1”,否则根搜索目录包含在结果中。
因此,要递归删除指定目录中超过 1 天的所有内容:
sudo find /usr/java/jboss-as-7.1.3.Final/standalone/tmp/vfs -mindepth 1 -mmin +1441 -exec rm -rf {} \;