So überschreiben Sie Verzeichnisse an mehreren Stellen mit einem Quellverzeichnis

So überschreiben Sie Verzeichnisse an mehreren Stellen mit einem Quellverzeichnis

phpthumbHeute habe ich festgestellt, dass eine meiner PHP-Dateien veraltet war, sodass ich das Verzeichnis auf dem gesamten Server überschreiben musste .

Mehrere Websites verwenden diesen Ordner an mehreren unbekannten Standorten. Wie kann ich also alle diese Verzeichnisse von einem Quellpfad aus überschreiben? (z. B. /home/test/testuser/phpthumb/nach /home/*/*/phpthumb/)

Antwort1

Das sollte funktionieren:

echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*

Sie müssen mit arbeiten xargs. Leider cpist ein Kopieren auf mehrere Ziele nicht möglich. cpkann mehrere Quellen verarbeiten.

Erläuterung:

  • echo /home/*/*/phpthumb: listet alle phpthumbVerzeichnisse auf
  • xargs -t -n 1: xargs sollte cpfür jede Zeile einzeln aufgerufen werden
  • cp -r /home/test/testuser/phpthumb/*der Befehl xargsaufrufen soll. Beachten Sie, dass das Zielverzeichnis am Ende mit angehängt wird xargs.

Antwort2

Versuche dies:

$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
    -exec cp /home/test/testuser/phpthumb/* {} \;

findBefehl sucht phpthumbin /home:

  • -type dOrdner auswählen
  • -not -pathschließt austest/testuser/phpthumb

Führen Sie den Befehl für jeden Ordner aus cp. Wenn test/testuser/phpthumbes sich um einen Baum mit Unterordnern handelt, fügen Sie -Rdie Option hinzu cp.

verwandte Informationen