繁体   English   中英

用于查找该目录中留下过去 7 天内创建的文件的空间的命令。 不使用`find`

[英]Command to find how much is the space in that directory leaving the files created in last 7 days. Without using `find`

我没有适当的系统访问权限来运行特权find命令。 所以我试图获取一串命令,可能使用grepawk或任何可以列出过去 7 天内未创建的文件以及它们消耗多少空间的命令。

我想出了这个命令du -h | grep ^[0-9.]*G du -h | grep ^[0-9.]*G现在我需要知道如何列出超过 7 天的列表。

上面命令的输出是:

du: cannot read directory `./lost+found': Permission denied
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy1.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy2.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy5.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy6.extranet.akamai.com
1.1G    ./portal/portal-internal-crons/get_portal_logs/p3-sp01.extranet.akamai.com
1.2G    ./portal/portal-internal-crons/get_portal_logs/p3-sp02.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy7.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy8.extranet.akamai.com
1.1G    ./portal/portal-internal-crons/get_portal_logs/p3-sp03.extranet.akamai.com
1.1G    ./portal/portal-internal-crons/get_portal_logs/p3-sp04.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy3.extranet.akamai.com
1.5G    ./portal/portal-internal-crons/get_portal_logs/p3-proxy4.extranet.akamai.com
18G ./portal/portal-internal-crons/get_portal_logs
18G ./portal/portal-internal-crons
18G ./portal
19G .

如果您可以在目标上运行ls -lR --time-style=+%s ,您可以:

ls -lR --time-style=+%s | awk -v now=$(date +%s) '/^-/ && now - $6 > 7*24*3600 {s += $5} END {print s}'

解释: ls -lR --time-style=+%s产生这种输出:

.:
total 7168
drwxr-xr-x 2 john doe    4096 1439992030 dira
drwxr-xr-x 2 john doe    4096 1441870671 dirb
-rw-r--r-- 1 john doe   43980 1436264423 filea
-rw-r--r-- 1 john doe   15941 1436264418 fileb
-rw------- 1 john doe 7193171 1439374938 filec
-rw-r--r-- 1 john doe    2927 1436264418 filed

./dira:
total 8
-rw-r--r-- 1 john doe 1205 1439991207 filea
-rw-r--r-- 1 john doe  142 1439990672 fileb

./dirb:
total 4
-rw-r--r-- 1 john doe 116 1441870658 filea

其中最后修改日期是以秒为单位的时间戳。 awk代码选择与时间戳超过过去 7 天的文件(第一个字段以-开头)对应的行。 它累加所选行的大小(字段编号 5)并在最后打印总和。 文件的年龄计算为当前时间戳( awk变量now )和文件的时间戳(字段编号 6)之间的差异。 当前时间戳now通过-v now=$(date +%s)选项作为变量传递给awk

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM