Ubuntu – Find – Mit der Konsole Dateien finden

Ein häufiges Problem ist, dass man Dateien, die man irgendwo abgelegt hatte, nicht finden kann. Man kann natürlich über die Linux Dist UI die Dateien in Files / Dateieinmanager suchen. Aber warum sollte man nicht das Kommandozeilen-Terminal dazu nutzen? Insbesondere wenn Du über SSH auf dem Server eingeloggt bist, geht es ja nur mit Konsole. Und hier gibt es einige nette Programme. Wenn es um die Suche nach Dateien anhand ihres Namens geht, sind zwei erwähnenswert. Diese zwei möchte ich an dieser Stelle vorstellen und auf auf eins etwas genauer eingehen. Bei der Suche nach Dateien anhand ihres Inhaltes ist grep die erst Wahl. Dazu habe ich hier bereits einen Artikel geschrieben.

Dateien suchen mit find

„Find“ ist ein sehr komplexer Befehl, mit dem du Dateien auf der Grundlage einer Vielzahl von Bedingungen suchen können. Es ist ein sehr hilfreiches Werkzeug, wenn Du eine Datei anhand derer Namen suchst. Auch wenn man sich nicht mehr an den ganzen Namen erinnern kann, kann man mit Platzhaltern arbeiten. Mit dem Befehl “find” kannst du Datei- und Ordnernamen, Dateien nach Erstellungsdatum, Änderungsdatum und Berechtigungen suchen. Man kann diese Bedingungen auch im find Command kombinieren. „Find“ ist ein sehr leistungsstarkes, aber dennoch langsameres Suchwerkzeug. Langsam in der unixoiden Welt. Im Vergleich zu Windows ist es schnell.

Startpunkt

Zuerst musst man find mitteilen von wo an man suchen will. Also den <Startpunkt> nennen.

find  
// sucht im aktuellen Verzeichnis

find /documents
// sucht im Verzeichnis "/documents".
 
find /documents /trash
// sucht in den Verzeichnissen "/documents" und "/trash"
 
find ~
// sucht in deinem Benutzerverzeichnis
 
find /
// sucht echt überall 

Dateiname

Als nächstes muss man find sagen, wonach man eigentlich sucht <Dateiname>. Hier hat man die wahl zwischen -iname und -name. Mit -iname wird nicht Casesensitiv gesucht.

find <Startpunkt> -(i)name "<Dateiname>" 

Falls Du zum Beispiel eine Migration Laravel Datei suchst und nicht den ganzen Namen eingeben willst, aber weißt es handelt sich um einen Namen wo products enthalten ist, dann kannst Du die mit Platzhaltern suchen.

find /database/migrations/ -name “*produtcs_*.php“ 

Oder Du suchst eine json Datei, wo du weisst das der Dateiname 6 Zeichen lang ist.

find /documents -name "??????.json"

Wenn Du nach leeren Dateien suchst, machst Du das mit:

find /kontoauszuege (-iname “*.pdf“) -empty

Wenn Du nach leeren Dateien suchst, machst Du das mit:

find /kontoauszuege (-iname “*.pdf“) -empty

Suche anhand von Datum und Uhrzeit

Mit „find“ kannst Du auch anhand des Datums nach Dateien suchen. Je nachdem, wann sie aufgerufen oder geändert wurden. Es gibt verschiedene Zeitangaben, die man für die Suche nach Dateien verwenden kann:

mtime (Modifikationszeit): wann der Inhalt der Datei zuletzt geändert wurde.
attime (Zugriffszeit): wann das letzte Mal auf die Datei zugegriffen wurde.
ctime (Änderungszeit): wann die Dateiattribute das letzte Mal geändert wurden.

Um z. B. nach Dateien in einem aktuellen Verzeichnis zu suchen, die vor weniger als 14 Tagen geändert wurden, führe den folgenden Befehl im Terminal aus:

find /app/models/ -mtime -14

Suche auf Basis der Dateigröße

Um z. B. Nach eine Datei zu suchen, deren Größe größer als 900 MB ist, können wir den folgenden Befehl im Terminal verwenden:

find /videos –size +900M\ 

Suche anhand von Dateiberechtigungen

Du suchst Dateien mit bestimmten Berechtigungen. Die allgemeine Syntax wäre hier:

 find /vendor/ -type -perm mode 

Wobei:

Der Parameter type erwartet die Werte d oder f. D steht für Directories / Ordner und f für File / Datei. Mit mode kann man entweder mit numerischer Berechtigung (z. B. 777, 655… usw.) oder mit symbolischer Berechtigung (z. B. u=x, a=r+x) suchen.

Um z. B. nach einer Datei mit der Berechtigung 644 zu suchen, können wir den folgenden Befehl im Terminal verwenden:

find /vendor -type f -perm 644 

Das waren die wichtigsten Suchoptionen mit find. Es gibt noch einige weitere Suchparameter. Du findest die, wenn du in deiner Konsole „man find“ eingibst.

Suche nach Dateien mit locate

locate ist verdammt schnell. Hat aber einen Nachteil. Die Suchergebnisabdeckung ist wechselhaft. Das liegt am System von locate. Locate arbeitet mit einer internen Datenbank und iteriert die Dateien deiner Ordner vorab. Somit kann es viel schneller als find zum gewünschtem Suchergebnis führen. Locate macht sinn, wenn man ein relativ statisches Dateiensystem hat. Du kannst aber natürlich regelmäßig die locate Datenbank aktualisieren. Mit dem Befehl:

sudo updatedb 

Da locate nicht standardmäßig in den Linux Dist enthalten ist, musst Du locate installieren.

sudo apt-get install locate 

Und dann kann die Suche auch schon losgehen. Der Syntax ist

locate -i <Dateiname>

locate –i todo.txt 

Und jetzt wünsch ich euch ein happy Searching!

Docker auf Ubuntu 18.04 installieren

Docker auf einem frischen Ubunto 18.04 installieren geht in wenigen Schritten. Mit frischem meine ich ein System wo noch keine ältere Dockerversion vorher lief.

sudo apt update 

Wir holen jetzt paar Pakete die wir für die Docker Installation brauchen rein.

sudo apt install apt-transport-https ca-certificates curl software-properties-common 

Nun fügen wir den GPG Key/Schlüssel für das offizielle Docker Repository hinzu. (ist ein freies Kryptographiesystem)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

Jetzt fügen wir das Docker-Repository zu den APT-Quellen hinzu:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" 

Anschließend aktualisieren wir die Paketdatenbank mit:

 sudo apt update 

Jetzt noch:

apt-cache policy docker-ce 
Installed: (none)
Candidate: 18.03.1~ce~3-0~ubuntu
Version table:
   18.03.1~ce~3-0~ubuntu 500
      500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages 

Und zum Schluss nur noch:

sudo apt install docker-ce 

Und mit :

sudo systemctl status docker 

wir ihnen der Docker Status auf ihrem System angezeigt.

Docker Status

Ubuntu – Firefox Sessions Backup

Wenn irgendwann mal das Internet für längere Zeit ausfallen sollte – Stichwort Cloudausfall – wäre ich gewappnet. Ich habe das Internet bei Firefox in meinen Tabs offen. Vielleicht gehört ihr auch zu denen, die über 1000 Tabs offen haben. Warum auch immer. Wahrscheinlich könnte man darüber eine Doktorarbeit schreiben. Mit dem Titel: „Persönlichkeitsanalyse anhand des Tabverhaltens.“ Bei mir ist es jedenfalls so, dass ich wenn ich etwas Interessantes gefunden habe aber in jenem Moment zu faul bin es bis zum Ende durchzulesen, lasse ich es im Tab offen. Und mit der Zeit kumuliert sich das auf mehrere Hundert offene Tabs. Vielleicht ist bei mir eine versteckte Bindungsphobie inkludiert. Wer weiß das schon.

Irgendwann nimmt die Anzahl der Tabs überhand und die Performance des Rechners lässt nach. Spätestens dann fragt man sich, wie man seine offenen Tabs jetzt backupen kann um sie eventuell in 10 Jahren mal durchzulesen. Also quasi nie. Aber für das gute Gefühl muss das ja gemacht werden.

Es gibt mehrere Möglichkeiten. Man installiert sich eine Firefox Erweiterung. Kann man machen. Hier würde ich den „Session Manager“ an Eurer Stelle mal ausprobieren. Aber es gibt eine viel elegantere Lösung. Und zwar über die Kommandozeile.

Geht zu einem Ordner wo ihr Euer Firefox Session Backup speichern wollt. Falls ihr über den Filemanager den Ordner angelegt habt, dann klickt rein und öffnet über das Mauskontextmenü das Terminal. Ihr sollte Euch jetzt im angelegtem Backup Ordner befinden. Gebt nun folgenden Command ein:

tar -jcvf firefox-browser-session-profile-backup.tar ~/.mozilla 

Damit packt ihr den gesamten relevanten Firefox Ordner in eine TAR Datei.

Ca. 10 Jahre später habt ihr ein wenig Zeit gefunden und wollt mal eure alten Tabs durchstöbern. Dann einfach in dem Ordner mit der gepackten Datei rein und das Terminal aufrufen. Dann eingeben:

tar -xvf firefox-browser-profile.tar

Und ihr habt das Internet vor 10 Jahren im Fenster.

Alternativ könnt ihr auch Deja Dup nutzen. Das ist ein Tool mit Userinterface, falls euch das mit der Konsole nicht vertraut erscheint.

SeoTheater Autoren