GNU/Linux >> Znalost Linux >  >> Linux

Mohu v Unixu spustit 'make' v adresáři, aniž bych do tohoto adresáře nejprve cd'oval?

make -C /path/to/dir


Jak je uvedeno v jiných odpovědích, make(1) má -C možnost pro toto; několik příkazů má podobné možnosti (např. tar). Je užitečné poznamenat, že pro ostatní příkazy, které takové možnosti nemají, lze použít následující:

(cd /dir/path && command-to-run)

Toto spustí příkaz v dílčím prostředí, jehož pracovní adresář se nejprve změní (přičemž pracovní adresář nadřazeného prostředí zůstane samotný). Zde && se používá místo ; k zachycení chybových případů, kdy adresář nelze změnit.


Pokud důvod, proč nechcete cd do adresáře, je ten, že potřebujete zůstat v aktuálním adresáři pro pozdější úlohu, můžete použít pushd a popd:

pushd ProjectDir ; make ; popd

To přejde do ProjectDir, spustí make a vrátí se tam, kde jste byli.


Linux
  1. Nelze spustit žádný takový soubor nebo adresář [Opravit]

  2. Pwd bez symbolických odkazů?

  3. Ssh – Potřebujete Tty ke spuštění sudo, pokud mohu sudo bez hesla?

  1. MySQLdump bez hesla v cronjob

  2. Jak mohu spustit dos2unix v celém adresáři?

  3. Mohu spustit server Oracle bez swapu?

  1. Spustit konkrétní příkaz v daném adresáři bez cd'ingu?

  2. Existuje unixový nástroj příkazového řádku, který dokáže analyzovat soubory písem?

  3. Docker-compose:nelze sestavit BEZ sudo, ale mohu spouštět kontejnery bez něj