Dieses Problem tritt nur im Docker-Container auf.
Nur findist in Ordnung:
find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"
find mit sed
find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g"
gibt einen Fehler:
/xxx/config/sed8Ey5tD: Device or resource busy
Ich verstehe nicht was ist sed8Ey5tD, lskann es nicht sehen. Ich denke, es ist von Docker, kann es aber nicht herausfinden.
Wie kann man sedErfolg haben?
OK, ich fand , dass Datei von Docker volumed wird, gibt es volumes: /xxx/config.json : /xxx/config/config.json in docker-compose.yml. Danach docker-compose downkann die Datei bearbeitet werden. Aber wie bearbeite ich die Datei ohne docker-compose down?
sed, keine Sicherungsdatei zu erstellen xargs sed -i'' "s/10.142.55.199/host02/g"(einfache Anführungszeichen direkt nach dem -iSchlüssel hinzufügen )
sed. Wenn Sie direkt Änderungen vornehmen,sedwird eine temporäre Datei erstellt, an der gearbeitet werden kann, um eine Beschädigung Ihres Originals zu vermeiden. Wenn etwas richtig gelaufen ist, wird das Original durch ein temporäres ersetzt. Aber was ist deine Frage? Sie möchten wissen, welche Ursache dieser Fehler ist oder was einesed8Ey5tDDatei ist?