Archiv für die Kategorie ‘Oneliner’

Ruby – Deinstallation aller Gems

Veröffentlicht: Februar 2, 2016 in Linux, Oneliner
Schlagwörter:,
Rubygems >= 2.1.0
gem uninstall -aIx
Rubgems < 2.1.0
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
Advertisements

Um eine komplette Verzeichnisstruktur, inklusive Unterordner, im aktuellen Verzeichnis zu erstellen verwendet man das folgende Kommando:

mkdir -p A/{B,C/{C1,C2}}

Wie sieht nun die erstellte Verzeichnisstruktur aus?

  • A
  • B
  • C
    • C1
    • C2

Unter Verwendung des absoluten Pfades (/home/user/)  werden die Verzeichnisse im entsprechenden Ordner angelegt, ohne das man sich in diesem befinden muss.

mkdir -p /home/user/A/{B,C/{C1,C2}}

Perl-Oneliner für das Arbeiten mit Textdateien

Veröffentlicht: März 28, 2015 in Oneliner
Schlagwörter:
entferne alle Leerzeilen

Beispiel: ohne Backupfile

perl -ni -e 'print unless /^$/' file.txt

Beispiel: mit Backupfile

perl -ni.bak -e 'print unless /^$/' file.txt

 

gebe alle Zeilen aus in dem ein RegEx exakt n-mal vorkommt

Beispiel: gebe alle Zeilen in file.txt aus in denen foo 3mal vorkommt

perl -ne 'print if ( ( () = /foo/g ) == 3 )' file.txt

(mehr …)

rekursives kopieren mit find

Veröffentlicht: März 27, 2015 in Oneliner
Schlagwörter:,

Frage: Wie kann ich Dateien eines bestimmten Typs (z.B. AVI-Files) aus verschiedenen Verzeichnissen und deren Unterverzeichnissen in ein Zielverzeichnis kopieren?

Antwort:

cd basisverzeichnis

find . -name '*.avi' -exec cp {} zielverzeichnis \;

Hinweis: in diesem Beispiel muss das Zielverzeichnis existieren

Frage: Geht das auch unter Beibehaltung der kompletten Verzeichnisstruktur (mitkopieren von Unterordnern)?

Antwort:

cd basisverzeichnis

find . -name '*.avi' | cpio -pdm zielverzeichnis

Hinweis: Hier sorgt die Option „d“ dafür das die Verzeichnisse ggf. erstellt werden.

CronJobs aller User anzeigen

Veröffentlicht: März 24, 2015 in Oneliner
Schlagwörter:

Ein kleiner Einzeiler um die CronJobs aller User auf dem System anzuzeigen (muss als root ausgeführt werden).

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done