所以今天我遇到我的 PHP 文件之一已过时,所以我必须覆盖phpthumb
整个服务器上的目录。
多个网站在多个未知位置使用此文件夹,那么如何从 1 个源路径覆盖所有这些目录? (即:/home/test/testuser/phpthumb/
到/home/*/*/phpthumb/
)
答案1
这应该有效:
echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*
你必须与 一起工作xargs
。不幸的是cp
无法复制到多个目标。cp
可以处理多个来源。
解释:
echo /home/*/*/phpthumb
:列出所有phpthumb
目录xargs -t -n 1
: xargs 应该cp
分别调用每一行cp -r /home/test/testuser/phpthumb/*
该命令xargs
应该调用。请注意,目标目录将在末尾附加xargs
.
答案2
尝试这个:
$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
-exec cp /home/test/testuser/phpthumb/* {} \;
find
phpthumb
命令在以下位置查找/home
:
-type d
选择文件夹-not -path
排除test/testuser/phpthumb
对于每个文件夹执行cp
命令。如果test/testuser/phpthumb
是带有子文件夹的树,请将-R
选项添加到cp
.