Я только что начал работать на Macac HighSierra Imac, и при попытке скопировать некоторые файлы я получаю сообщение об ошибке:
Я только что создал каталог test
, чтобы прояснить проблему:
Каталог test
содержит:
file1.txt file2.txt folder1
Используя следующую команду в родительском каталоге:
cp -R test/ .
Я получаю эту ошибку:
cp: illegal option -- ?
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
Согласно странице справочника для cp, аргумент -R означает:
Если source_file обозначает каталог, cp копирует каталог и все поддерево, подключенное в этой точке.Если исходный_файл заканчивается на /, содержимое каталога копируется, а не сам каталог.
Есть предложения относительно того, почему я получаю ошибку?
У меня установлена версия bash 3.2.57 (1) -релиз
---- ОБНОВЛЕНИЕ ---
В соответствии с комментариями к этой проблеме, я предоставляю некоторые дополнительныеинформация:
which cp
возвращает /bin/cp
echo cp -R test/ .
возвращает cp -R test/ .
set | grep cp
ничего не возвращает cp --version
и cp --help
возвращает cp: illegal option -- ?
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory
man cp
возвращает страницу справочника, но, похоже, ничего не изображено в версии, кроме BSD February 23, 2005 BSD
---- ОБНОВЛЕНИЕ ----
После всех замечательных комментариев я нашел проблему и исправил ее.type cp
возвращает cp is aliased to cp -I
.
Я создал псевдоним cp
, чтобы запросить вывод стандартной ошибки перед копированием файла, который перезапишет существующий файл (аргумент cp -I
).Этот псевдоним сработал как find в сочетании с -R
на моем macbook, но, видимо, не на моем Imac.
Теперь команда cp -R test/ .
работает так, как я ожидал.