tarはmkdirを実行できません:そのファイルはありません

tarはmkdirを実行できません:そのファイルはありません

次のコマンドを実行すると、Cannot mkdir:No such file or Directoryのエラーが発生します。私はこれがパス名の\に関連していると思います。この問題をどのように解決しますか?

私はCentosでこれを実行しています。

tar xf dpdk-17.02.tar.xz
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0: Cannot mkdir: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0: Cannot mkdir: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0/class: Cannot open: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0: Cannot mkdir: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0/config: Cannot open: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0: Cannot mkdir: No such file or directory
tar: dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000\:01\:00.0/consistent_dma_mask_bits: Cannot open: No such file or directory

より詳細な情報を得るためにstraceを試しましたが、次はエラーの1つの結果です。

mkdirat(AT_FDCWD, "dpdk-17.02", 0755)   = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs/bus", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs/bus/pci", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices", 0755) = -1 EEXIST (File exists)
mkdirat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000:01:00.0", 0755) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "dpdk-17.02/app/test/test_pci_sysfs/bus/pci/devices/0000:01:00.0", 0x7ffe85312de0, 0) = -1 ENOENT (No such file or directory)
write(2, "tar: ", 5)                    = 5
write(2, "dpdk-17.02/app/test/test_pci_sys"..., 79) = 79
write(2, ": No such file or directory", 27) = 27
write(2, "\n", 1)                       = 1
write(2, "tar: ", 5)                    = 5
write(2, "dpdk-17.02/app/test/test_pci_sys"..., 85) = 85

ベストアンサー1

これはシンボリックリンクによるものです。 tar が 'strace' で何をしているかを見るのに価値があるかもしれません(tar コマンドの前にプレフィックスを付けるだけですstrace)。

tarが実行したい操作と失敗した操作をstrace出力で確認する必要があります。

おすすめ記事