Linuxbefehle

G

GrU3nL!nG

Gast
Ich habe folgendes vor:

Testordner besitzt 10 Unterordner. (Beispielanzahl)
5 dieser Ordner sind mit Inhalt, in diesem Fall mit einem Bild, versehen.
Demnach sind die anderen 5 Ordner leer.

Ziel meiner Batch-Datei soll es nun sein, die leeren Ordner zu erkennen und diese Umzubenennen.

Hat jemand eine Idee zur vorgehensweise?

Gruß Marc

*edit*

ich habe mal folgendes probiert:
for i in *; do
if [ "`ls "$i" | wc -l`" -eq 0 ]; then
mv "$i" "leeres_verzeichnis_`date +%s`";
fi
done

nur wieso bekomme ich folgenden fehler:
bash: [: 'ls Testordner | wc -l': integer expression expected

Es funktioniert nun, hier die Zeile:
for i in *; do if [ "$(ls "$i" | wc -l)" -eq 0 ]; then mv "$i" "leer_$i"; fi done

Sry für doppel Post!

Nun geht es weiter....
Wie kann ich es verwirklichen, dass beim zweiten Aufruf die Ordner, vor denen leer_ steht und diese nun eine Datei enthalten, so umbenannt werden, dass leer_ wegfällt und sie praktisch wieder ihren alten Namen erhalten?
 
Zuletzt bearbeitet: (Doppelpost zusammengefügt, bitte Forenregeln lesen ;))
"rmdir *" sollte reichen, wenn ich mich recht entsinne werden von rmidr keine Ordner mit Inhalt gelöscht.
 
Zurück
Oben