/ / Use "rm dir -rf" en lugar de "rm -rf dir" en OSX [cerrado] - macos, shell

Utilice "rm dir -rf" en lugar de "rm -rf dir" en OSX [cerrado] - macos, shell

Los comandos usan el orden fijo de opciones en el terminal OSX. Así, por ejemplo, debo usar rm -rf name, en lugar de rm name -rf, que es mucho más conveniente para mí (por ejemplo, puedo agregar todos los nombres primero, luego ver si tengo directorios allí y necesito agregar -r)

¿Hay alguna manera de permitir que los comandos OSX tengan una sintaxis más general?

No estoy seguro de que esto sea posible, pero, paraPor ejemplo, me pregunto sobre algún preprocesamiento de comandos de shell con ... el programa Python, que reformateará las opciones y llamará al comando apropiado. Pero no estoy familiarizado con python y no sé cómo hacer que un programa así se ejecute cada vez que escribo un comando.

Respuestas

5 para la respuesta № 1

OSX tiene implementación BSD de herramientas comunes de UNIX. Estas son más estrictas que las implementaciones de GNU que se encuentran en un Linux típico. Así que no solo por rm, pero por ejemplo ls, mkdir, las banderas deben venir antes de los argumentos de nombre de archivo en OSX. Eso me parece bastante molesto también.

Probablemente puedas instalar la versión GNU de estas herramientas. En el peor de los casos, puedes descargar el código fuente y compilarlo. Póngalos en un nuevo directorio dedicado y anteponga ese directorio a su PATH.

No creo que haya otra manera. No puede cambiar el comportamiento de las herramientas BSD de esa manera.

ACTUALIZAR

Como @bdesham señalado, puede instalar coreutils con Homebrew para obtener las implementaciones de GNU. Puedo confirmar que con MacPorts también.


1 para la respuesta № 2

Cada comando Unix / Linux determina el orden requerido o la agrupación de argumentos y opciones para sí mismo. No hay una manera general de anular eso.

Sin embargo, The Bash (Bourne-again shell, larga historia...) shell, es decir, intérprete de línea de comandos, con el que interactúa cuando se abre la ventana del terminal, admite la edición y el historial de línea de comandos. La edición utiliza combinaciones de teclas de uno de los dos editores de texto más utilizados que han estado disponibles en plataformas Unix / Linux durante 30 años o más. La emulación predeterminada del editor es de un editor llamado Emacs. Con el editor, puede cambiar fácilmente los comandos antes de enviarlos o recuperar los comandos anteriores para usarlos como plantilla para un comando nuevo.

Se puede encontrar una referencia rápida a los comandos de edición predeterminados en:

Lista de los métodos abreviados de teclado de bash de edición de línea de comandos de Mac OS X predeterminados

De hecho, hay mucho en el shell Bash, o en cualquier intérprete de línea de comandos de Linux / Unix. Para el manual de referencia completo, ver:

Manual de referencia de Bash

Además, en Mac OS X, Linux o Unix, el "hombre"El comando mostrará la documentación de ayuda de casi todos los comandos disponibles, así como muchas otras características del sistema operativo base. Para obtener más información, ingrese lo siguiente en el símbolo del sistema:

man man