【问题标题】:Linux command cp producing omitted directoryLinux命令cp产生省略目录
【发布时间】:2013-12-05 23:36:33
【问题描述】:

我想在网站的 100 个不同目录中放置 1 个名为“test1.html”的文件。

目录结构如下

/home/domain.com/public_html/ (每个目录的 domain.com 名称都会更改,所以我使用 * .

文件在这里:/root/test1.html

我已经尝试通过:cp test1.html /home/*/public_html/ 通过 root 帐户但给我

cp: omitting directory `/home/domain1.com/public_html/'
cp: omitting directory `/home/domain2.com/public_html/'

等等。

如何将一个文件放在所有域目录中?

它是 Centos 5.9

【问题讨论】:

    标签: linux centos5 cp


    【解决方案1】:

    试试:

    for dest in /home/*/public_html/
    do 
       cp test1.html $dest
    done
    

    由于您在用户拥有的目录中写入,请注意您的 umask 设置 - 它控制文件的权限。您可以使用cp -p 保留对 test1.html 的确切权限。

    【讨论】:

    • 感谢您的回复,但这对我来说没有任何意义。你能写得更简单吗?
    【解决方案2】:

    试试这个:

    cd /home/; find . -name public_html -type d | xargs -I {} cp /root/test1.html {};
    

    【讨论】:

    • 谢谢,但不起作用。 [root@uk ~]# cd /home/;找 。 -name public_html -type d | xargs -i {} cp /root/googleba3771cddb278c04.html {}; xargs: {}: 没有这样的文件或目录
    • 该死的。它的大写 i:编辑后的回复
    【解决方案3】:

    应该写成:cp -R test1.html /home/*/public_html/

    -R 代表递归,没有它它不想做所有的目录。

    【讨论】:

    • cp 不支持多个目标目录。这就是为什么其他答案使用循环或xargs,所以cp可以被多次调用。
    • 其他答案对我不起作用,但确实如此。
    • 听起来您正在从一个或多个目录复制,在这种情况下-R 是正确答案。在这个问题中,OP 试图将 复制到 一堆目录。 -R 对此无济于事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 2010-10-20
    • 2011-11-11
    • 2010-10-26
    相关资源
    最近更新 更多