1つのソースディレクトリを使用して複数の場所のディレクトリを処理する方法

1つのソースディレクトリを使用して複数の場所のディレクトリを処理する方法

だから今日私はPHPファイルの1つが古いことを発見し、phpthumbサーバーのディレクトリ全体を上書きする必要がありました。

複数の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/* {} \;

findphpthumbコマンドは以下を探します/home

  • -type dフォルダの選択
  • -not -path入らないようにするtest/testuser/phpthumb

cp各フォルダに対してコマンドを実行します。test/testuser/phpthumbサブフォルダがあるツリー-Rの場合cp

関連情報