.rnd-Dateien unter Linux

Bei Durchsicht eines meiner Linux-Systeme fiel mir in einem der Verzeichnisse eine Datei mit dem Namen .rnd auf. Vor ein paar Tagen war diese Datei dort noch nicht zu finden. Erst nach einem aktuellen Update von OpenSSL, ist die Datei aufgetaucht.

Zusätzliche Entropie wird in den .rnd-Dateien hinterlegt

Nun sollte der geneigte Nutzer natürlich vorsichtig sein, wenn ohne weitere Erklärungen seltsame Dateien in Ordnern auftauchen. Und so stellt sich die Frage was es mit der .rnd-Datei auf sich hat. Hintergrund für diese Datei ist die Erzeugung von zufälligen Zahlen unter Linux. Diese nutzt unterschiedliche Quellen für die Erzeugung von sicheren Zufallszahlen. In den .rnd-Dateien befindet sich zusätzliche Entropie, welche für diese Generierung dieser Zahlen genutzt werden kann.

Die Dateien selber können bedenkenlos gelöscht werden, da sie nicht die einzige Quelle für zufällige Zahlen unter Linux sind. Normalerweise befinden sich diese Dateien im jeweiligen Nutzerorder, sie können aber auch an anderen Orten wie z.B. dem Ordner /var/www/ auftauchen.

Wo befinden sich die Crontab-Dateien?

Wenn Cronjobs auf einem Linux-System angelegt werden sollen, so geschieht dies meist mit dem Befehl:

crontab -e

Damit wird die Crontab-Datei des aktuellen Nutzern in einem Editor geöffnet. Leider verschleiert der Befehl den Ort an dem die eigentlichen Crontab-Dateien liegen. Dies ist z.B. dann interessant wenn ein Backup der Cronjobs eingespielt werden soll. Die entsprechenden Crontab-Dateien befinden sich hierbei im Ordner:

/var/spool/cron/crontabs

Für jeden Nutzer existiert dort eine Datei mit dem entsprechenden Nutzernamen, in welchem die Cronjobs hinterlegt sind. Meistens wird ein solches Backup nach dem Befehl:

crontab -r

benötigt werden. Dieses Befehl löscht die Crontab-Datei des aktuellen Nutzers. Leider ist die E-Taste ein direkter Nachbar der R-Taste. Dies führt dazu das die Crontab-Datei beim Versuch sie zu bearbeiten, bedingt durch einen kleinen Vertipper, ohne Rückfrage gelöscht wird.

Aktuelle Datei im Projektbaum in IntelliJ IDEA lokalisieren

Bei der Nutzung einer IDE, in diesem Fall IntelliJ IDEA, hat man öfter das Problem, das man bei der Bearbeitung einer bestimmten Datei in das entsprechende Verzeichnis bzw. die Stelle in der Project View wechseln möchte.

Über das Select In kann die Projekt View aufgerufen werden

Dazu muss im Editor-Fenster die Tastenkombination Alt + F1 gedrückt werden. Damit öffnet sich das Select In. In diesem kann nun der erste Punkte mit dem Namen Project View mittels der Enter-Taste ausgewählt werden. Anschließend wird der aktuelle Ort der Datei in der Project View angezeigt.

Dateien eines bestimmten Types unter macOS kopieren

Wer versucht Dateien, eines bestimmten Dateityps, an einen anderen Ort zu kopieren, der kann mit den grafischen macOS-Boardmitteln schnell auf Probleme stoßen. Als Alternative bietet sich das Terminal an, in welchem das Problem wesentlich schneller gelöst werden kann:

find /Users/seeseekey/Unsortiert/ -iname \*.txt -exec cp {} /Users/seeseekey/Sortiert/txt/ \;

Damit werden alle Dateien, welche dem Pattern entsprechen, im Quellordner gefunden und anschließend in den Zielordner kopiert. Das cp-Kommando zum Kopieren kann auch durch mv ersetzten werden:

find /Users/seeseekey/Unsortiert/ -iname \*.txt -exec mv {} /Users/seeseekey/Sortiert/txt/ \;

Durch diese Änderung werden alle Dateien verschoben anstatt kopiert.

Dateien in PHP rekursiv ermitteln

In PHP gibt es (nach meinem Wissen) keine einfache Methode um die Dateien eines Ordner rekursiv zu ermitteln. Möchte man die Dateien eines Ordners ohne dessen Unterordner ermitteln, so kann man scandir nutzen. Auf Basis dessen, habe ich eine Funktion geschrieben, welche diesen Operation auf Wunsch auch rekursiv ausführt:

function GetFiles($directory, $recursiv)
{	
	if($directory[strlen($directory)-1]!='/') $directory.="/";
	
	$files = array();
	$subDirectories = array();
	
	$scandirFiles = scandir($directory); //Read files

	foreach ($scandirFiles as $file) 
	{
		if($file=="." || $file=="..") continue;

		if(is_dir($directory.$file))
		{
			array_push($subDirectories, $directory.$file);
		}
		else if(is_file($directory.$file))
		{
			array_push($files, $directory.$file);
		}
	}

	 if($recursiv)
	 {
		 foreach ($subDirectories as $dirs) 
		 {
			 $subDirectoryFiles=GetFiles($dirs, $recursiv);
			 $files = array_merge($files, $subDirectoryFiles);
		 }
	 }
	 
	 return $files;
}

Genutzt wird die Funktion wie folgt:

$files = GetFiles('images/', true);

Der Rückgabewert ist ein Array, in welchem die Dateien mit ihren relativen Pfaden enthalten sind.