Wie kann ich das Verzeichnis ändern, in dem ein Befehl ausgeführt wird?

Wie kann ich das Verzeichnis ändern, in dem ein Befehl ausgeführt wird?

Wie kann ich einen Befehl ausführen, der sich in einem anderen Verzeichnis befindet, sodass der Befehl denkt, ich hätte ihn im aktuellen Verzeichnis ausgeführt?

basename()Wenn ein Befehl „ oder“ (oder wie auch immer es heißt) verwendet, argv[0]um dorthin zu gelangen, wo er aufgerufen wurde, und Dateien in seinem Verzeichnis benötigt, sucht er möglicherweise in dem Verzeichnis, aus dem Sie die Anwendung aufgerufen haben, also im falschen.

Natürlich können Sie cdzuerst in das Verzeichnis gehen und es dort aufrufen, aber gibt es eine Möglichkeit, die Anwendung so aufzurufen, dass sie denkt, Sie hätten sie aus ihrem Verzeichnis ausgeführt (ohne cdsie vorher auszuführen)?

Wenn es möglich ist, werde ich dies in verwenden crontab, da cdmir der Gedanke an die Verwendung dort Angst macht.

Antwort1

Warum macht cdIhnen die Verwendung in Crontab Angst?

Beachten Sie, dass Sie, wenn Sie das Verzeichnis nur vorübergehend wechseln und dann zurückkehren möchten, pushdund verwenden können.popd

Antwort2

Sie können ein Skript wie dieses erstellen:

#!/bin/sh
cd /dir/
yourcommand

Speichern Sie es dann irgendwo und fügen Sie das Skript zu crontab hinzu

verwandte Informationen