Command-Line
如何使用 1 個源目錄覆蓋多個位置的目錄
所以今天我遇到了我的一個 PHP 文件已經過時,所以我必須覆蓋
phpthumb
整個伺服器上的目錄。多個網站在多個未知位置使用此文件夾,那麼如何從 1 個源路徑覆蓋所有這些目錄?(即:
/home/test/testuser/phpthumb/
到/home/*/*/phpthumb/
)
這應該有效:
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
.
試試這個:
$ 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
.