Я следую за подсказкой инструментов Unix в Твиттере, и интересно, что многие из опубликованных советов недоступны в OS X.
Например:
cp - u будет копировать только файлы, которые не существуют, или являются более новыми, чем их существующие аналоги, в целевой каталог.
Попытка этого на моей машине приводит к:
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
Почему эти опции недоступны и возможно ли получить к ним доступ в OS X?
macos
terminal
command-line
DQdlM
источник
источник
brew install coreutils findutils gnu-sed gawk
. См. Apple.stackexchange.com/questions/69223/… .gcp
чтобы избежать путаницы) не знает, как скопировать сложные метаданные, которые могут иметь файлы OS X (расширенные атрибуты и т. Д.); поэтому, если вы используетеgcp
файл псевдонима, в копии будет отсутствовать критическая информация, и она не будет работать.gcp -R
скопирую его вместе со всем остальным). Если вы имеете в виду._somefilename
, это файл AppleDouble, используемый для хранения метаданных (информация, о которой я говорю) на некоторых видах иностранных томов, что ... сложно ...Ответы:
Получить homebrew и установить основные утилиты. Затем вы можете увидеть, поддерживает ли версия GNU cp нужные вам флаги. Вот хороший ответ на партнерском сайте, и я опишу точные шаги, необходимые для замены cp на версию GNU, если вы хотите:
Вот доморощенный - http://mxcl.github.com/homebrew/
Вот длинный рассказ - /superuser/476575/replace-os-xs-shell-commands-with-the-linux-versions/ 476594 # 476594
Примером такой среды является [Homebrew] ( http://mxcl.github.com/homebrew/ ), который, например, имеет GNU
sed
. После того, как вы установили Homebrew, вы можете набратьи установите GNU Coreutils . Это обеспечит вам
sed
,date
,printf
,wc
и многие другие инструменты , которые поставляются с GNU / Linux, но не OS X. Тем не менее, чтобы не «отменяют» ОС по умолчанию X двоичные файлы, они будут с префиксомg
по умолчанию. Итак, после установки Coreutils, если вы хотите использовать GNU sed, введитеЕсли каждый раз вводить слишком сложно, вы можете добавить каталог «gnubin» в PATH и просто вызвать GNU sed с помощью
sed
. Вам нужно будет добавить следующее к вашему~/.bash_profile
:источник
port
?Причина в том, что OSX использует инструменты командной строки BSD, а пользователи подсказок Unix, вероятно, используют Linux, который использует инструменты командной строки GNU.
Вы можете установить инструменты GNU на OSX (и BSD на Linux).
Самый простой способ - использовать менеджер пакетов, такой как Macports, Homebrew или Fink.
источник