2016-07-14 33 views
-3

Ich muss die ältesten Ordner (einschließlich ihrer Inhalte) aus einem bestimmten Pfad löschen. Z.B. Wenn mehr als 10 Verzeichnisse vorhanden sind, löschen Sie die ältesten, bis Sie unter 8 Verzeichnissen sind. Das Protokoll würde die Anzahl der Verzeichnisse vor/nach + dem Dateisystem davor/danach anzeigen und welche Verzeichnisse gelöscht wurden. Vielen Dank im Voraus!Shell win32 älteste Verzeichnisse löschen (rekursiv)

+0

Ich weiß nicht, warum ich die -3 bekam, brauchte ich Unterstützung für Powershell. In/Bash, ich weiß, wie ich es selbst machen kann ... :) das Etikett, ich denke, war verwirrend –

Antwort

0

Sie sollten dies testen zuerst auf dem Backup-Verzeichnis,

#!/bin/bash 
DIRCOUNT="$(find . -type d -printf x | wc -c)" 
if [ "$DIRCOUNT" -gt 10 ]; then 
    ls -A1td */ | tail -n -8 | xargs rm -r 
fi 
0

wenn ich unten nicht Ihre Absichten Missverständnis, ist Ihre Antwort

#!/Usr/bin/env bash

DIRCOUNT = "$ (Finden Sie -maxdepth 1 -Typ d -printf x |. Wc -c)"

echo "Sie haben jetzt $ DIRCOUNT dirs"

[["$ DIRCOUNT" -gt 10]] & & ls -A1td */| tail -n $ ((DIRCOUNT-8)) | xargs rm -r & & echo „Jetzt haben Sie 8 dirs“