bzip2 -dk a.osm.bz2
bzip2: I/O or other error, bailing out. Possible reason follows.
bzip2: No space left on device
Input file = a.osm.bz2, output file = a.osm
bzip2: Deleting output file a.osm, if it exists.
我做了一个df -h
和
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 439G 115G 302G 28% /
/dev/sda2 976M 104M 806M 12% /boot
....
该文件大约有 100GB。而且,我肯定应该有大约 350GB 的可用存储空间。我不明白为什么它会导致错误。
$du -sh a.osm.bz2
100G a.osm.bz2
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 439G 121G 295G 30% /
答案1
世界这么大;-) 错误是合理的。
从https://wiki.openstreetmap.org/wiki/Planet.osm:
2021 年 2 月 1 日起,纯 OSM XML 版本接管1370.5 GB从 99.3 GB bzip2 压缩的下载数据文件解压后)
你可以 ...
答案2
花一些时间,您就可以从档案文件本身了解档案中文件的大小。
-rw------- 1 criggie criggie 95M Jul 22 2015 home-email.tar.bz2
$ bzcat home-email.tar.bz2 | wc -c
149606400
因此,95 MB 的存档扩展为149,606,400 字节在一个 tar 文件中,该文件中的信息足以满足您的目的。
在 unix 世界中,压缩可以是与归档不同的过程,这就是为什么我们有gzip
和bzip2
,并且分别有tar
用于将事物粘合在一起。
你可以使用 test 和 verbose 标志深入挖掘扩展的 tar 文件
$ bzcat home-email.tar.bz2 | tar -tv
...big list of output....
归档器/压缩器类似zip
结合了这两种功能,因此如果您的归档器是源自 PC 世界的zip
或arc
或等等,您就必须检查 LIST 选项的标志 - 例如:lhz
$ unzip -lv /home/criggie/config.zip
Archive: /home/criggie/config.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2020-07-28 17:04 00000000 dir/
1708 Defl:N 1093 36% 2017-02-15 14:15 7c7aee5a dir/file1.txt
5354 Defl:N 2860 47% 2020-03-10 15:57 31be4459 dir/file2.txt
-------- ------- --- -------
319022 10362 26% 20 files