Schlagwort-Archive: find

Auswahl treffen

Ich musste neulich in einem Ordner mit lauter automatischen Moodle-Kursraum-Exporten (*.mbz) nur die in ein Archiv schieben, die Teil des letzten nächtlichen Backups waren. Ältere Dateien sollten draußen bleiben. Hiermit ging das ganz flott:

tar cvzf backup.tar.gz $(find . -daystart -ctime 0 -type f -name „*.mbz“)

Ich hab davor etwas gegooglet gehabt und viele Tipps gefunden, die das Problem mit -exec oder | xargs  angehen und dann ausprobiert (z.B. die hier)  … und bin dabei nicht glücklich geworden.

Arbeitsnachweis

Ich hab immer wieder das Problem, dass ich wissen sollte, welche Arbeiten in den letzten 7, 14, 21 oder 28 Tagen von mir / jemand anderem in einem bestimmten Verzeichnis erledigt wurden – also vor allem, welche Dateien angelegt oder verändert wurden. Dazu hab ich mir ein kleines Script geschrieben:

#!/bin/bash
echo „7 TAGE“ > /home/user/workdone.txt
find . -mtime -7 -print >> /home/user/workdone.txt
echo „14 TAGE“ >> /home/user/workdone.txt
find . -mtime -14 -print >> /home/user/workdone.txt
echo „21 TAGE“ >> /home/user/workdone.txt
find . -mtime -21 -print >> /home/user/workdone.txt
echo „28 TAGE“ >> /home/user/workdone.txt
find . -mtime -28 -print >> /home/user/workdone.txt
sed ‚/zuloeschen/d‘  /home/user/workdone.txt > /home/user/workdone2.txt
cat /home/user/workdone2.txt

Der Einschub sed ‚/zuloeschen/d‘ workdone.txt sorgt dafür, dass ich Elemente, die vom Server selbst kommen (im konkreten Fall sind dies täglich erneuerte Steuerdateien) einfach wieder raus werfen kann. Im Beispiel oben würde demnach die Zeile, die das Wort zuloeschen enthält, gelöscht.

Inkscape CLI

Iconsets unter GPL sind eine wahre Freude. Leider werden die Icons jedoch selten in den Größen geliefert, die ich für die Nutzung auf Webseiten benötige. Also muss ich mir die Knöpfe hier selbst backen.

In einem ersten Schritt suche ich mir in den herunter geladenen Iconsets die SVG Dateien und kopiere mir diese in einen Ordner auf dem Desktop:

find /home/dirk/Bilder/Icons -name „*.svg“ -exec cp {} /home/dirk/Desktop/icons/ \;

Da mir im Falle von SVGs die Konvertierung mit imagemagick in PNGs zu pfriemelig geriet, nutzte ich hier Inkscape auf der Shell:

for i in $(ls *.svg) ; do inkscape -f $i -e $i-60.png -h 60 ; done

Das läuft zwar wesentlich langsamer ab (pro SVG braucht Inkscape hier bis zu 10 Sekunden – und das auf einem Quadcore mit 8GB RAM), ist aber dafür viel viel schöner im Ergebnis und umgeht alle Probleme mit Transparenzen.