1 つのソース ディレクトリで複数の場所のディレクトリを上書きする方法

1 つのソース ディレクトリで複数の場所のディレクトリを上書きする方法

phpthumb今日は、PHP ファイルの 1 つが古くなっていることに気づいたので、サーバー全体のディレクトリを上書きする必要がありました。

複数の Web サイトが複数の不明な場所でこのフォルダーを使用しているため、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

関連情報