Cosa devo fare se voglio eseguire il comando ls ogni volta che faccio un cd in una directory?

2

Il più delle volte quando eseguo un comando cd faccio anche un ls per vedere quali altri file o cartelle si trovano in quella directory. Quindi voglio eseguire ls ogni volta che cambio la directory. So che posso fare cd foo && ls ma è davvero necessario fare && ls ogni volta?

    
posta Santosh Kumar 11.07.2012 - 04:14

3 risposte

4

Ci sono 2 modi per farlo. Puoi creare un alias come LnxSlck pubblicato o un altro sta creando una funzione in .bash_aliases

mycd(){ cd "" && ls; }
    
risposta data Flint 11.07.2012 - 06:28
1

Uso il seguente, che non comporta l'aggiunta di nuovi comandi:

cd() {
  builtin cd "[email protected]"
  local status=$?
  [ $status -eq 0 ] && ls
  return $status
}

Questo fa sì che cd funzioni come prima, eccetto che c'è anche un ls .

Nota le seguenti implicazioni: Gli altri esempi non consentono argomenti a cd . Anche se questi argomenti sono rari, questa è una sostituzione drop-in compatibile al 100%. E poiché restituisce lo stato di uscita di cd , non interromperà gli script.

C'è un avvertimento qui. Se mai non desidera questa funzionalità, devi chiamare builtin cd . Ma la mia esperienza nell'uso di questa funzione per molti anni è che tali situazioni sono rare, che si verificano principalmente negli script, e la comodità di non dover digitare qualcosa come mycd ogni volta che si desidera modificare le directory supera di gran lunga l'inconveniente minore della digitazione builtin cd una volta in una luna blu.

    
risposta data Scott Severance 12.07.2012 - 00:02
0

Puoi creare alias per cd e aggiungerlo al tuo * bash_profile * o bashrc , ad esempio:

alias 'mycd'='cd  && ls'

mettilo nella tua .bashrc . Si consiglia comunque di archiviare tutti gli alias in ~/bash_aliases file, quindi creare il file utilizzando touch ~/.bash_aliases se non è già presente e utilizzarlo per memorizzare tutti gli alias .

    
risposta data LnxSlck 11.07.2012 - 04:20

Leggi altre domande sui tag