Command-Line

如何使用 1 個源目錄覆蓋多個位置的目錄

  • August 28, 2017

所以今天我遇到了我的一個 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.

引用自:https://unix.stackexchange.com/questions/159566