finde alle dateien in directory die mit .ext enden und kopiere sie nach newdirectory
find directory/ -type f -name *.ext -print0 | xargs -0 cp -t newdirectory/
finde alle dateien in directory die mit .ext enden und kopiere sie nach newdirectory
find directory/ -type f -name *.ext -print0 | xargs -0 cp -t newdirectory/
#!/bin/bash DONE=0 while [ $DONE -eq 0 ] do #do something and return something else than 0 when you want to exit this circle DONE=$? done
protected function rGlob($pattern = '*', $flags = 0, $path = false) { if (!$path) { $path = dirname($pattern).DIRECTORY_SEPARATOR; } $pattern = basename($pattern); $paths = glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); $files = glob($path.$pattern, $flags); foreach ($paths as $path) { $files = array_merge($files, $this->rGlob($pattern, $flags, $path)); } return $files; }
hier könnt ihr schnell alles über git erfahren
Hier eine kurze Anleitung wie man ioncube php loader auf ubuntu mit lighty webserver installieren kann.
# in den tmp ordner wechseln cd /tmp # per wget loader sources holen wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz # entpacken des tar balls tar xvfz ioncube_loaders_lin_x86.tar.gz # verschieben des neuen ioncube ordners nach /usr/local/ mv ioncube /usr/local/ # neue aa_ioncube.ini datei in /etc/php5/cgi/conf.d/ erzeugen vi /etc/php5/cgi/conf.d/aa_ioncube.ini # je nach php version diese zeile in die aa_ioncube.ini # datei schreiben und mit :wq speichern zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so # lighty neu starten /etc/init.d/lighttpd restart
um mit ant alte dateien per find/pipe/xargs zu entfernen, kann man den ant exec befehl verwenden.
<target name="dump_cleanup" description="dump cleanup - remove old backup db dumps"> <echo message="cleanup backup dir - remove old db dumps"/> <exec executable="bash" dir="${backups}"> <arg value="-c"/> <arg line='"find -P . -maxdepth 1 -type f -ctime +4 -print0 | xargs -0 rm -f"'/> </exec> </target>
Der Konsolen Befehl im Detail:
find . -type f -ctime +3 -maxdepth 1 | xargs rm
find . findet im aktuellen Ordner Dateien (-type f – files) deren Dateistatus vor mehr als 3*24h (-ctime +3) geändert wurde. Mit -maxdepth 1 verhindern wir Rekursion in die Tiefe des aktuellen Ordners.
Die Pipe (|) übergibt das find-Ergebnis nach xargs und führt rm auf jedem einzelnen Ergebnis aus.
Um einen Patch für eine geänderte Datei zu erstellen, nutzt man svn diff wie folgt:
svn diff file_with_changes.ext > diff.patch
Um diesen Patch dann zu benutzen, nutzt man svn wie folgt:
patch -p0 -i diff.patch
-p0 sorgt dafür das die zu patchende Datei gefunden wird (zero directories)
-i sagt patch welche patch Datei benutzt werden soll
Um durch etwaige Cronjobs eine Prüfung von 2 Dateien und darauf folgende Aktionen zu erzeugen, kann ein shell script Verwendung finden.
#!/bin/bash SOURCE=/mount/data/new_file.txt TARGET=/srv/www/vhosts/www/app/config/old_file.txt diff -i -b -B -q ${SOURCE} ${TARGET} if [ ! $? -eq 0 ] then echo "new file is different from old one - copy new one to old" cp ${SOURCE} ${TARGET} else echo "no difference between files - nothing to do" fi
Unter folgendem Link findet Ihr die GIT Quickreferenz für SVN Umsteiger.