![](/img/trans.png)
[英]How to exclude multiple subdirectories (same directory name) when using find command to delete files older than 30 days in a batch file?
[英]Command to find how much is the space in that directory leaving the files created in last 7 days. Without using `find`
我沒有適當的系統訪問權限來運行特權find
命令。 所以我試圖獲取一串命令,可能使用grep
或awk
或任何可以列出過去 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.