簡體   English   中英

刪除除子目錄中最新的10個文件外的所有文件

[英]Delete all files except the latest 10 in subdirectories

我有一些來自計算機的備份文件,這些文件將其備份存儲在不同的文件夾中。 此外,在同一時間(:每個星期天,機器2:每月的第一個星期一,等機1)不創建的文件。

我需要在每個文件夾中保留最新的10個文件,並刪除所有其他文件。 由於備份間隔不同,我不能只刪除所有早於x天的文件。

文件夾結構如下:

./<SystemType>/<FQDN_Machine1>/backup_2015_09_08_02_00_00.zip
./<SystemType>/<FQDN_Machine2>/backup_2015_09_01_14_00_00.zip
IFS='
'
for i in dir/*; do
    ls -d1t $i/* | head -n-10
done | xargs rm

列出除最新十個以外的所有子目錄,並通過xargs將其發送到rm

這是我的解決方案:

#!/bin/bash

cat find ./ -type f | while IFS= read -r line
do
  find "$line" -type f | head -n -10 | while read file
  do
    rm -f "$file"
  done
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM