I comandi da riga di comando possono essere resi insensibili all'ordine dei nomi di file e delle opzioni?

5

Sono nuovo nell'uso del Mac. Sembra che la maggior parte dei comandi inciampi sulle opzioni fornite dopo i nomi dei file. In Linux, che ho usato per anni, non importa. Su Apple, lo fa. C'è qualche impostazione da qualche parte o qualche trucco per rendere comandi come ls si comportano "normali"?

dwilson 0====> ls -l p*
-rw-r--r--@ 1 dwilson  owner  184 Jul 29 13:57 poo.c
-rw-r--r--@ 1 dwilson  owner  133 Jul 29 13:57 poo.h

dwilson 0====> ls p* -l
ls: -l: No such file or directory
poo.c        poo.h

dwilson 1====>
    
posta DarenW 29.07.2011 - 23:04
fonte

3 risposte

6

La ragione di ciò è che Mac OS X utilizza i programmi di utilità BSD (che hanno un ordine specifico per i loro parametri), mentre Linux usa i programmi di utilità GNU, che possono accettare argomenti in qualsiasi ordine.

Puoi scaricare e compilare il pacchetto GNU coreutils , che dovrebbe fornirti le utility a cui sei abituato ; Raccomanderei solo di abituarmi ai programmi di utilità BSD, tuttavia, poiché altrimenti avresti problemi a spostarti su altri sistemi. Il metodo BSD funziona bene sui sistemi GNU, ma il metodo GNU è meno portabile.

    
risposta data 19.08.2011 - 03:24
fonte
1

Se stai usando MacPorts (e probabilmente sei un intenditore di Linux), puoi installare GNU coreutils con:

sudo port install coreutils

quindi assicurati di aggiungere il percorso coreutils al tuo percorso:

export PATH=/opt/local/libexec/gnubin:$PATH

[Fonti: TJ Luoma commenta la risposta accettata e questo post del blog .]

    
risposta data 22.01.2014 - 22:40
fonte
1

L'esempio che hai fornito è normale. Conosco un ambiente * nix che utilizzerà flag / opzioni dopo l'elenco dei file per ls

Alcuni comandi sono solo versioni diverse da qualsiasi ambiente * nix da cui si proviene. Puoi correggere cose come questa usando alias o altre shell.

    
risposta data 29.07.2011 - 23:10
fonte

Leggi altre domande sui tag