GNU/Linux >> Linux Esercitazione >  >> Linux

Il punto del comando esterno `cd`?

Come indicato in questa bella risposta, i sistemi POSIX hanno un cd binario esterno oltre alla shell incorporata. Su OS X 10.8 è /usr/bin/cd . Non puoi usarlo come il cd integrato poiché esce immediatamente dopo aver cambiato la propria directory di lavoro. A cosa serve?

Risposta accettata:

Serve principalmente per assicurarsi che la cassetta degli attrezzi POSIX sia disponibile sia all'interno che all'esterno di una shell (consultare la logica POSIX per richiederli).

Per cd , non è estremamente utile, ma nota che cd cambia directory ma ha altri effetti collaterali:restituisce uno stato di uscita che aiuta a determinare se sei in grado di chdir() in quella directory o meno, e genera un utile messaggio di errore che spiega perché non puoi chdir() quando non puoi.

Esempio:

dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)

Un altro potenziale effetto collaterale è il montaggio automatico di una directory.

Su alcuni sistemi, la maggior parte dei comandi esterni per i built-in della shell standard sono implementati come collegamento simbolico allo stesso script che fa:

#! /bin/sh -
"${0##*/}" "[email protected]"

Questo è avviare una shell ed eseguire il built-in in essa.

Alcuni altri sistemi (come GNU), hanno utilità come veri comandi eseguibili che possono creare confusione quando il comportamento differisce dalla versione incorporata della shell.


Linux
  1. Personalizzazione della shell Bash

  2. Un'introduzione al comando diff

  3. Come assegnare l'output di un comando a una variabile di shell?

  4. Come ottenere l'indirizzo IP esterno in uno script di shell?

  5. Le parentesi mettono davvero il comando in una subshell?

Comando sorgente in Linux

Che cos'è la shell in Linux?

Il comando timer in Linux

Shell dei comandi

Comando Bash fc:utilizza facilmente Bash Shell come un professionista

Come eseguire il comando Vim dalla shell?