ターゲットローカルディレクトリの一致よりも最新の* .koファイルのみをコピーするようにrsyncを取得しようとしています。 --updateを使用していますが、rsyncがまだターゲットと同じファイルをコピーしたいようです。私は次のコマンドを使用しています:
rsync -avmR --dry-run --update --include='*.ko' --include='*/' --exclude='*' drivers/gpu/ /lib/modules/6.1.0-rc2+/kernel/drivers/gpu/
Linuxカーネルを構築したら、このコマンドを実行します。このビルドは、複数のサブディレクトリに複数の.koファイルを生成します。たとえば、以下はサブセットです。
$ find drivers/gpu/ -name "*.ko"
drivers/gpu/drm/amd/amdgpu/amdgpu.ko
drivers/gpu/drm/display/drm_display_helper.ko
drivers/gpu/drm/drm_vram_helper.ko
drivers/gpu/drm/hyperv/hyperv_drm.ko
drivers/gpu/drm/i915/i915.ko
私が望むものはすべてコピーすることです最新.koファイルを/lib/modules/6.1.0-rc2+/kernel/drivers/の下のターゲットパスにコピーします。つまり、.koファイルは次の場合にのみコピーする必要があります。存在する目標にそしてローカルバージョンは最新作成日の割合に基づいてターゲットファイルを照合します。
たとえば、/lib/modules/6.1.0-rc2+/kernel/drivers/gpu/drm/i915/i915.koが存在し、drivers/gpu/drm/i915/i915.koが最新/lib/modules/6.1ケースです。 0 -rc2+/kernel/drivers/gpu/drm/i915/i915.ko、drivers/gpu/drm/i915/i915.ko を /lib/modules/6.1.0-rc2+/kernel/drivers/gpu/drm にコピーします。 /i915/i915.ja。
問題は、上記のrsyncコマンドを実行したときに表示される.koファイルが次のようになることです。いいえ彼らの目標より新しいものです。たとえば、ここではvirtio-gpu.koがすでに両方のディレクトリで同じファイルであることを確認できます。
$ ls -l drivers/gpu/drm/virtio/virtio-gpu.ko /lib/modules/6.1.0-rc2+/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko
-rw-r--r-- 1 ttabi ttabi 4992944 Jan 17 13:36 drivers/gpu/drm/virtio/virtio-gpu.ko
-rw-r--r--. 1 ttabi ttabi 4992944 Jan 17 13:36 /lib/modules/6.1.0-rc2+/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko
ただし、上記のrsyncコマンドは次のようになります。
$ rsync -avmR --dry-run --update --include='*.ko' --include='*/' --exclude='*' drivers/gpu/ /lib/modules/6.1.0-rc2+/kernel/drivers/gpu/
building file list ... done
drivers/
drivers/gpu/
drivers/gpu/drm/
...
drivers/gpu/drm/virtio/
drivers/gpu/drm/virtio/virtio-gpu.ko
--dry-runを削除すると、rsyncが不必要にvirtio-gpu.koファイルのコピー。
どうすれば解決できますか?
ベストアンサー1
R
コマンドオプションは相対パスです。これは、コマンドが呼び出される場所への相対パスを意味すると仮定します。
最初にコピーするのはdrivers
ディレクトリです。にコピーされると思います/lib/modules/6.1.0-rc2+/kernel/drivers/gpu/
。
これはdrivers/gpu/drm/virtio/virtio-gpu.ko
、コピーされているファイルがコピーされていることを意味します/lib/modules/6.1.0-rc2+/kernel/drivers/gpu/drivers/gpu/drm/virtio/virtio-gpu.ko
(倍に表示されますdrivers/gpu
)。
ターゲットにまだ存在しないファイルをコピーしたくない場合は、相対パスを使用せずに新しいファイル作成のスキップをrsync
使用しようとします。--existing