Dieses Problem tritt nur im Docker-Container auf.
Nur find
ist 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
, ls
kann es nicht sehen. Ich denke, es ist von Docker, kann es aber nicht herausfinden.
Wie kann man sed
Erfolg 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 down
kann 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 -i
Schlüssel hinzufügen )
sed
. Wenn Sie direkt Änderungen vornehmen,sed
wird 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 einesed8Ey5tD
Datei ist?