我正在写一些小的bash脚本,用于复制GNU/Linux和Solaris中的某些文件/目录。在Linux中一切正常,但是cp命令在Linux和Solaris中没有相同的选项。
Copy命令如下所示:
cp -ruv $source $dest不幸的是,我不知道如何在Solaris中实现复制、详细和复制更新。有什么想法吗?
谢谢
发布于 2012-06-25 22:28:44
不幸的是,Solaris下的cp没有这个选项。man solaris应该会揭示这一点。
让你的脚本依赖于rsync你觉得舒服吗?
或者,如果可能的话,您可以安装coreutils包并使用GNU。
发布于 2018-08-24 22:51:10
我自己也遇到了类似的问题,发现gcp也能解决这个问题。我已经将安装coreutils作为我的标准系统设置的一部分。
我在新的Solaris安装上运行以下命令:
pkgadd -d http://get.opencsw.org/now
pkgutil -U
pkgutil -i -y coreutils
pkgutil -a vim
pkgutil -i -y vim
pkgutil -i -y findutils请记住将路径和文档路径添加到您的配置文件中,并可能添加到/etc/ profile下的系统配置文件中:
# Set the program path
PATH=$PATH:/usr/sfw/bin:/usr/sfw/sbin:/usr/openwin/bin:/opt/csw/bin:/usr/ccs/bin:/usr/local/bin:/usr/local
export PATH
# Set the documentation path
MANPATH="$MANPATH:/usr/share/man:/opt/sfw/man:/opt/csw/man"
export MANPATH听起来您可能是Solaris的新手--因为我是相对较新的。我也这样做,这应该不会影响任何事情。
我将VIM设置为默认编辑器,而不是VI -它是兼容的,但有更多功能,包括ANSI颜色,一些终端仿真器将通过您的鼠标点击和滚动,以获得更大的灵活性:
# Set the default editor
EDITOR=vim
export EDITOR然后,如果你仍然使用默认的提示符,没有显示任何内容,你可能想要添加一些信息-这个版本需要一个Bash shell:
# Set the command prompt, which includes the username, host name, and the current path.
PS1='\u@\h:\w>'
export PS1发布于 2018-11-01 03:39:33
要重新创建详细模式,可以将输出连接到控制终端(/dev/tty),同时将tee的stdoout输出通过xargs传递给cp。
find /some/source/directory -type f | \
tee /dev/tty | xargs -I {} cp {} /copy/to/this-directory/将find替换为您喜欢的任何内容,只要它将要通过管道复制到tee的文件的路径传递给它。
在没有额外GNU实用程序的标准Solaris 10系统上进行了测试。
https://stackoverflow.com/questions/11191195
复制相似问题