다른 가상 머신 간에 파일을 복사하는 작업 명령이 이미 있습니다.
하지만 복사된 파일이 자동으로 원본 파일과 동일한 파일 이름을 갖기를 원합니다. 그래서 원본 파일 이름을 가져오고 복사된 파일에 대해 동일한 파일 이름을 유지하는 스크립트를 만들고 싶습니다. 그게 다야.
관련이 있지만 그렇지 않다고 생각하는 경우 서로 다른 VM 간에 복사하는 명령은 다음과 같습니다.
cat /path/to/file_in_dom0 | qvm-run --pass-io <dst_domain> 'cat > /path/to/file_name_in_appvm'
이 명령은 다음에서 복사되었습니다.여기
답변1
아이디어는 파일을 아카이브하고, 아카이브를 다른 쪽 끝으로 파이프하고, 다른 쪽 끝은 표준 입력을 아카이브 해제하는 것입니다. 그것은 다음과 같습니다:
tar cf - /path/to/file_in_dom0 | qvm-run --pass-io <dst_domain> 'cd / && tar xf -'
이렇게 하면 전체 경로 이름이 보존됩니다. 이 작업을 원하지 않으면 스크립트에서 비슷한 작업을 수행하고 및 명령 dirname
을 사용하여 원하는 작업을 정확하게 수행할 수 있습니다.basename
cd
참고: Unix에서 표준이기 때문에 이것을 사용하고 있지만 tar
다른 아카이버도 비슷한 작업을 수행할 수 있습니다. 단일 명령을 사용하여 여러 파일을 복사할 수 있습니다.