
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 cd
zuerst 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 cd
sie vorher auszuführen)?
Wenn es möglich ist, werde ich dies in verwenden crontab
, da cd
mir der Gedanke an die Verwendung dort Angst macht.
Antwort1
Warum macht cd
Ihnen die Verwendung in Crontab Angst?
Beachten Sie, dass Sie, wenn Sie das Verzeichnis nur vorübergehend wechseln und dann zurückkehren möchten, pushd
und 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