/ / Usa "rm dir -rf" invece di "rm -rf dir" su OSX [chiuso] - macos, shell

Usa "rm dir -rf" invece di "rm -rf dir" su OSX [chiuso] - macos, shell

I comandi usano un ordine fisso di opzioni nel terminale OSX. Quindi, per esempio, devo usare rm -rf name, invece di rm name -rf, che è molto più conveniente per me (ad esempio, posso aggiungere prima tutti i nomi, poi vedere se ho delle directory lì e devo aggiungere -r).

C'è un modo per consentire una sintassi più generale dei comandi OSX?

Non sono sicuro che sia possibile, ma, perAd esempio, mi chiedo qualche pre-elaborazione dei comandi della shell con ... il programma python, che riformatterà le opzioni e chiamerà il comando appropriato. Ma non ho familiarità con Python e non so come far funzionare un programma del genere ogni volta che scrivo un comando.

risposte:

5 per risposta № 1

OSX ha l'implementazione BSD di strumenti UNIX comuni. Queste sono più severe delle implementazioni GNU che si trovano in un tipico Linux. Quindi non solo per rm, ma per esempio ls, mkdir, i flag devono venire prima degli argomenti del nome file in OSX. Trovo anche piuttosto noioso.

Probabilmente è possibile installare la versione GNU di questi strumenti. Nel peggiore dei casi, è possibile scaricare il codice sorgente e crearli. Inseriscili in una nuova directory dedicata e anteponi questa directory al tuo PATH.

Non credo ci sia un altro modo: non è possibile modificare il comportamento degli strumenti BSD in questo modo.

AGGIORNARE

Come @bdesham sottolineato, è possibile installare coreutils con homebrew per ottenere le implementazioni GNU. Posso confermarlo con MacPorts pure.


1 per risposta № 2

Ogni comando Unix / Linux determina l'ordine richiesto o il raggruppamento di argomenti e opzioni per se stesso. Non esiste un modo generale per ignorarlo.

Tuttavia, il Bash (Bourne-di nuovo shell, lunga storia...) shell - cioè interprete della riga di comando - con cui interagisci quando si apre la finestra del terminale, supporta la cronologia e la modifica della riga di comando. Il montaggio utilizza combinazioni di tasti di uno dei due editor di testo ampiamente utilizzati che sono disponibili su piattaforme Unix / Linux per 30 anni o più. L'emulazione dell'editor predefinito proviene da un editor chiamato Emacs. Utilizzando l'editor, è possibile modificare facilmente i comandi prima di inviarli o recuperare i comandi precedenti da utilizzare come modello per un nuovo comando.

Un riferimento rapido ai comandi di modifica predefiniti è disponibile all'indirizzo:

Elenco delle scelte rapide da tastiera bash per la modifica da riga di comando Mac OS X predefinita

In effetti, c'è molto da dire sulla shell Bash o su qualsiasi interprete da riga di comando Linux / Unix. Per il manuale di riferimento completo, vedere:

Bash Manuale di riferimento

Inoltre, su Mac OS X, Linux o Unix, l '"uomo"comando mostrerà la documentazione di aiuto per quasi tutti i comandi disponibili e numerose altre funzionalità del sistema operativo di base. Per saperne di più, inserisci quanto segue al prompt dei comandi:

man man