Mir ist bekannt, dass der touchBefehl zum Aktualisieren des Datums der letzten Änderung an einer Datei verwendet wird. Es wird auch zum Erstellen einer neuen Datei verwendet, wenn die angeforderte Datei im Dateisystem nicht vorhanden ist.
Da touch (wie der Name schon sagt) nur das letzte Änderungsdatum aktualisieren sollte, warum wird dann auch versucht, eine neue Datei zu erstellen?
Ist es nur ein Scheck, der in den Code der Berührung geschrieben wurde, oder ist es etwas anderes, das zur Erstellung einer Datei führt?
>/forcefsckoder printf '' >>/forcefsck(letzterer würde vorhandene Inhalte beibehalten). Was Sie beschreiben, ist eine Möglichkeit, ein Dienstprogramm zu verwenden, das auf eine bestimmte Art und Weise funktioniert, aber das hat keinen wirklichen Einfluss darauf, warum es so geschrieben wurde.
touchals um die Funktionsweise geht, touchverstößt das Prinzip der Einzelverantwortung mit dem Nebeneffekt der Dateierstellung. Daher ist das "Warum" einfach auf frühe Designentscheidungen zurückzuführen, die aufgrund der Popularität und Verbreitung / Benutzerfreundlichkeit hängengeblieben sind.
touch /forcefsckerstelle ich eine leere Datei, die aufgerufen wird, um/forcefsckzu erzwingen, dass Dateisysteme beim nächsten Neustart auf Fehler überprüft werden. Die Datei selbst muss nichts enthalten, sie muss nur existieren. Ohnetouchmüsste ich eine leere Datei verwendenviodernanospeichern. Viel schneller zu bedienentouch.