• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] Stapel-Löschen von Dateien mit Leerzeichen im Namen

RaguKro

Newbie
Hallo,

ich komme mit einem kleinen Problem nicht weiter:

Ich will per batch ältere Dateien löschen:
Code:
pushd ${BACKUP_PFAD}; ls -tr "$BACKUP_PFAD/$BACKUP_NAME"* | head -n -${BACKUP_ANZAHL} | xargs rm; popd

Das Problem ist, dass im BACKUP_NAME Leerzeichen sind und deshalb der rm Befehl aus einem Namen mehrere Dateien macht, die er dann nicht findet.

Mein Versuch mit
Code:
| xargs -0 rm
führt auch nicht zum Ziel - offenbar wird ein
Code:
$'\n'
als Trenner verwendet. mit "xargs -d" kann ich aber nur ein Zeichen als Trenner definieren.

Wer kann das Rätsel lösen?

Vielen Dank
 
OP
R

RaguKro

Newbie
ok, habe das Problem selber gelöst:

xargs -d akzeptiert als Trennzeichen zwar nur genau ein Zeichen, aber '\n' wird als ein Zeichen in Linux gewertet, Hex 0a.

der richtige Code lautet daher:
Code:
ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs -d '\n' rm
 
Oben