Kleines Copy / Paste Snippet um einen gesamten Mac (oder ein Linux) in ein beliebiges Zielverzeichnis auf einen anderen Rechner zu übertragen. Zuerst wird ins Root-Directory ” / ” gewechselt und von dort aus relativ in das entfernte Zielverzeichnis übertragen. Da dieses sehr wahrscheinlich etwas länger dauert, habe ich dem “rsync” ein “nohup” vorgeschaltet. Hierdurch kann man den laufenden Befehl mit der Tastenkombination Ctrl-z anhalten und anschliessend mit ” bg ” als Hintergrundprozess weiterlaufen lassen und das Terminal schliessen. Evtl. Fehler kann man später dann in der Datei ” nohup.out ” nachlesen.

cd /
nohup rsync \
 --relative \
 --archive \
 --executability \
 --compress \
 --exclude=/Volumes/* \
  . <user>@<zielrechner>:/<zielpfad>

  • ssh-keygen -t dsa
  • cat ~/.ssh/*.pub | \
    ssh user@remotehost \
    'umask 077; cat >>.ssh/authorized_keys'

    (Hier das letzte Mal das Passwort eingeben)
  • ssh user@remotehost
    (Jetzt muss es klappen)
  • Zum abschliessenden Komfort einen kurzen Alias in ~/.bashrc bzw. in /etc/profile hinterlegen

Siehe auch:


Kommandozeilen Notizzettel.
Suche alle Dateien , mit den Extensions

  • *.php
  • *.htm*
  • *.css
  • *.js

und konvertiere den Windows Zeilenumbruch CRLF ( \r\n )
in den Unix Zeilenumbruch LF ( \n).
Die betroffenen Dateien werden dabei aufgelistet.
Erläuterung zu dem -exec /bin/rm ....
Die -i Option des sed legt (zumindest auf dem Mac) eine gleichnamige Tempdatei mit der Erweiterung “*-e” an.
Diese Tempdatei wird im gleichen Durchlauf entfernt.

find . -type f \
\( -name "*.php" -or \
-name "*.htm*" -or  \
-name "*.js" -or  \
-name "*.css" \) \
-exec /usr/bin/sed -i -e 's/'"$(printf '\015')"'$//g' {} \; \
-exec /bin/rm {}-e \; \
-print

In /etc/paths werden die einzelen Einträge für $PATH hinterlegt, das war’s schon.

Weitere, interne Verarbeitung:
/etc/profile führt /usr/libexec/path_helper beim Starten einer Terminal-Shell aus, welches dann wiederum $PATH aus den hinterlegten Infos generiert.