14 votes

Est-il possible d'obtenir la suite complète des options Unix pour les outils de la ligne de commande sous OS X ?

Je suis Conseil d'outil Unix sur Twitter et il est intéressant de constater que de nombreux conseils qui sont postés ne sont pas disponibles sur OS X.

Par exemple :

cp - u ne copiera que les fichiers qui n'existent pas, ou qui sont plus récents que leurs homologues existants, dans le répertoire de destination.

En essayant ceci sur ma machine, on obtient le résultat suivant :

cp: illegal option -- u
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
   cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory  

Pourquoi ces options ne sont-elles pas disponibles et est-il possible d'y avoir accès sous OS X ?

0 votes

Vous pouvez également installer find, sed, et awk avec brew install coreutils findutils gnu-sed gawk . Voir apple.stackexchange.com/questions/69223/ .

2 votes

Attention : si vous installez et utilisez les versions GNU des outils cli, vous gagnez les extensions GNU, mais vous perdez aussi les extensions de la version OS X des outils. Par exemple, la commande cp dans le coreutils de homebrew (nommé gcp pour éviter toute confusion) ne sait pas comment copier les métadonnées complexes que les fichiers OS X peuvent avoir (attrs étendus, etc) ; donc si vous utilisez gcp sur un fichier alias, la copie manquera d'informations critiques et ne fonctionnera pas.

0 votes

@GordonDavisson merci pour l'info. C'est le fichier qui est ajouté à tous mes répertoires ? Je pense que cela peut être un plus :)

14voto

Oskar Points 1242

Obtenez homebrew et faites-lui installer les utilitaires de base. Vous pourrez alors voir si la version GNU de cp supporte les drapeaux que vous désirez. Voici une bonne réponse sur un site partenaire et j'extrairai les étapes exactes dont vous aurez besoin pour que cp soit remplacé par la version GNU si vous le souhaitez :

Voici le homebrew - http://mxcl.github.com/homebrew/
Voici la longue histoire - https://superuser.com/questions/476575/replace-os-xs-shell-commands-with-the-linux-versions/476594#476594


Un exemple d'un tel environnement est Homebrew qui a, par exemple, GNU sed entre autres. Une fois que vous avez installé Homebrew, vous pouvez taper

brew install coreutils

et installer le GNU Coreutils . Ceux-ci vous fourniront sed , date , printf , wc et de nombreux autres outils fournis avec GNU/Linux, mais pas avec OS X. Cependant, pour ne pas "écraser" les binaires OS X par défaut, ils seront précédés du préfixe g par défaut. Ainsi, après avoir installé les Coreutils, si vous souhaitez utiliser GNU sed, tapez

gsed

Si c'est trop compliqué à taper à chaque fois, vous pouvez ajouter un répertoire "gnubin" à votre PATH et simplement appeler GNU sed avec sed . Vous devrez ajouter les éléments suivants à votre ~/.bash_profile :

PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"

1 votes

Est-il possible d'installer en utilisant port ?

2 votes

@AdilSoomro macports.org est un outil de longue date qui jouit d'une bonne réputation. Je ne vois aucune raison de ne pas l'essayer - je n'ai simplement pas d'expérience et j'utilise et contribue à l'hombrew.

0 votes

@AdilSoomro Oui, MacPorts est fortement recommandé par rapport aux autres gestionnaires de paquets car il a été conçu par des ingénieurs d'Apple. sudo port install coreutils .

4voto

yoliho Points 340

La raison en est qu'OSX utilise les outils de ligne de commande BSD et que les utilisateurs de la pointe de l'outil Unix utilisent probablement Linux qui utilise les outils de ligne de commande GNU.

Vous pouvez installer des outils GNU sur OSX (et BSD sur Linux).

La méthode la plus simple est d'utiliser un gestionnaire de paquets comme Macports, Homebrew ou Fink.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X