Dateien auf Größe vergleichen und löschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
geriom
Beiträge: 279
Registriert: 16.10.2004 08:13:37

Dateien auf Größe vergleichen und löschen

Beitrag von geriom » 08.02.2006 10:54:02

Hallo,
folgendes Problem:
Ich habe verschiedene Dateien in 2 Verzeichnissen
Im 1. 123456789.ZIP im 2. 123456789.ZIP.ALT
234567890.ZIP 234567890.ZIP.ALT
usw.
Im 2. Verzeichnis kann die .ALT auch nicht existieren.

Wenn nun die 1. eine andere Größe hat als die 2. soll diese nicht gelöscht werden, wenn sie gleich sind soll die 1. gelöscht werden.
Das ganze muss in einer Schleife komplett die Verzeichnisse abfragen.
Wie geht das?

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 08.02.2006 11:43:23

Die vorhandenen Dateien ermittelst Du mit find, die Dateigröße erhältst Du mit stat.

Benutzeravatar
FANA
Beiträge: 482
Registriert: 30.03.2005 17:50:55

Beitrag von FANA » 08.02.2006 13:14:05


geriom
Beiträge: 279
Registriert: 16.10.2004 08:13:37

Beitrag von geriom » 08.02.2006 15:29:36

Gibt es denn ein Programm was mir ein logischen Wert ausgibt wenn die Dateien gleich oder ungleich sind?

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 08.02.2006 15:39:21

diff oder md5sum

geriom
Beiträge: 279
Registriert: 16.10.2004 08:13:37

Beitrag von geriom » 08.02.2006 16:05:05

Evtl. cmp für Binärdateien.
Aber wie baue ich die Schleife zur Überprüfung auf???

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 08.02.2006 16:30:00

geriom hat geschrieben: Aber wie baue ich die Schleife zur Überprüfung auf???
http://www.linuxfibel.de/bash.htm#Schleifen

an der Stelle in Schleifen wo evaluiert wird kannst du Bedingungen (hier die Größe oder ob deine Files gleich sind etc.) mit dem bash command test auswerten - siehe

Code: Alles auswählen

man test
nimm die Syntax Variante mit den [ ] (square brackets)

markus

geriom
Beiträge: 279
Registriert: 16.10.2004 08:13:37

Beitrag von geriom » 08.02.2006 19:08:41

Hier mein Ansatz:

#!/bin/sh
alt=./ALT
cd $alt
for i in * ; do
echo "$i"
if [ $i = >>>$i ohne .ALT<<< ]
then echo "ja"
fi
done

Die Datei 123456789.ZIP.ALT soll mit 123456789.ZIP verglichen werden
Was muss ich in die Klammern >>> <<< einsetzen ? Wie bekomme ich den Ausdruck 123456789.ZIP aus $i?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 08.02.2006 19:26:10

geriom hat geschrieben:Wie bekomme ich den Ausdruck 123456789.ZIP aus $i?

Code: Alles auswählen

gms@gms1:~$ basename /tmp/blabla.txt
blabla.txt
gms@gms1:~$ dirname /tmp/blabla.txt
/tmp
Gruß
gms

geriom
Beiträge: 279
Registriert: 16.10.2004 08:13:37

[gelöst]

Beitrag von geriom » 08.02.2006 19:32:46

Hallo
das meine ich nicht.
Die Dateien:
/xyz/123456789.ZIP soll mit der Datei /xyz/ALT/123456789.ZIP.ALT verglichen werden.

gelöst!!!

basename $i .ALT

Antworten