【发布时间】:2018-11-30 12:11:24
【问题描述】:
我刚开始在 Imac macOS HighSierra 上工作,当尝试复制一些文件时,我不断收到错误:
我刚刚创建了一个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 复制该目录和在该点连接的整个子树。如果 source_file 以 / 结尾,则 复制目录而不是目录本身。
关于我为什么会收到错误的任何建议?
我有 bash 版本 3.2.57(1)-release
----更新---
根据cmets对这个问题,我提供了一些额外的信息:
-
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之外似乎没有描述任何关于版本的内容
【问题讨论】:
-
-r选项应该做什么?您是否尝试过阅读cp的手册页(即man cp)?它说什么? -
在 directory_1 中是否有一个奇怪的文件?
-
请注意,macOS 附带的 BSD
cp不鼓励使用-r:“cp 实用程序的历史版本有一个 -r 选项。此实现支持该选项;但是,它的使用强烈建议不要这样做,因为它不会正确复制特殊文件、符号链接或 fifo。" -
无法复制here。这很奇怪。这应该像您在此处发布的那样工作。我认为问题与您发布的代码无关,它必须是别的。您是从命令行还是在脚本中运行命令?你能发布
cp --version的输出吗? -
which,作为一个外部命令,不会知道是否有一个别名或 shell 函数隐藏了一个内置函数。使用type cp看看是不是这样。