Code: Alles auswählen
cd /home/Ordner1/logs/
rm -r *.log
cd /home/Ordner2/logs/
rm -r *.log
usw
Code: Alles auswählen
cd /home/Ordner1/logs/
rm -r *.log
cd /home/Ordner2/logs/
rm -r *.log
usw
OldGod78 hat geschrieben:Hallo nochmal. In meinem script lösche ich derzeit log Dateien so:Doch geht es irgendwie, vielleicht mit "find", dass er alle *.log löscht die in einem bestimmten Ordner sind...?Code: Alles auswählen
cd /home/Ordner1/logs/ rm -r *.log cd /home/Ordner2/logs/ rm -r *.log
Code: Alles auswählen
rm -r /home/Ordner1/logs/*.log
rm -r /home/Ordner2/logs/*.log
OldGod78 hat geschrieben:Doch geht es irgendwie, vielleicht mit "find", dass er alle *.log löscht die in einem bestimmten Ordner sind...?
Code: Alles auswählen
find /home -name \*.log -exec rm {} \;
Deine Warnung ist schon angemessen, aber es kommt letztlich darauf an, was der Fragende will. Er schreibt: ``alle *.log löscht die in einem bestimmten Ordner sind''. Rekursiv oder nicht? Die Rekursion bietet dir find(1), ansonsten reicht Globbing (mit dem Stern).TomL hat geschrieben:Dieses find-Beispiel solltest Du besser nicht verwenden....
Ich hab's in einem anderen Thread schonmal vorgeschlagen und mich gleichzeitig gefragt ob es Gruende dagegen gibt:MSfree hat geschrieben:Code: Alles auswählen
find /home -name \*.log -exec rm {} \;
Code: Alles auswählen
find /home -name \*.log -delete
Was aber genau so gefordert warTomL hat geschrieben:Dieses find-Beispiel solltest Du besser nicht verwenden.... der löscht nicht nur die in personen-ungebundenen "Ordner?" gefundenen logs, sondern, wenn Du das als root machst, auch alle Logs in den user-homedirs.
Code: Alles auswählen
find /home -name \*.log -exec rm {} \;
Code: Alles auswählen
find /home -name \*.log
Dieses `-r' macht doch keinen Sinn. Das waere nur relevant, wenn es Verzeichnisse (!) gaebe, die auf `.log' enden. Mir scheint, dass man wollte, dass rm(1) rekursiv nach allen Dateien `*.log' sucht und diese loescht. Das kann rm(1) aber nicht. Dazu braucht man find(1).OldGod78 hat geschrieben:Code: Alles auswählen
rm -r *.log
Code: Alles auswählen
rm /home/Ordner{1,2}/logs/*.log
Na, in diesem speziellen Fall geht's auch portabel:wanne hat geschrieben:Hier noch bash only Syntax:Code: Alles auswählen
rm /home/Ordner{1,2}/logs/*.log
Code: Alles auswählen
rm /home/Ordner[12]/logs/*.log
Code: Alles auswählen
rm /home/{Ordner1,Verzeichnis2,bla,blubb}/logs/*.log
Code: Alles auswählen
for i in Ordner1 Verzeichnis2 bla blubb ; do
rm /home/"$i"/logs/*.log
done