繁体   English   中英

Linux脚本创建目录结构

[英]Linux script to create a directory structure

我正在尝试按此处所述为图片上传创建目录结构,结果应如下所示:

upload/
      00/00/00/
...
      00/00/ff/
...   
      00/ff/ff/
...   
      ff/ff/ff/

所以我写了平面python脚本:

ROOT = '/var/upload'

for a in xrange(0, 256):
    for b in xrange(0, 256):
        for c in xrange(0, 256):
            os.makedirs(os.path.join(ROOT, format(a, '02x'), format(b, '02x'), format(c, '02x')))

并得到:

...
    os.makedirs(os.path.join(ROOT, format(a, '02x'), format(b, '02x'), format(c, '02x')))
File "/usr/lib64/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)

OSError: [Errno 28] No space left on device: '/var/upload/2e/04/cd'

我尝试了其他位置-'/ opt / upload',结果相同。 但是有足够的空间并且没有配额:

[root@sky /]# df
/dev/mapper/rfremix_sky-root  51475068     23006628  25830616           48% /
devtmpfs                       2016520            0   2016520            0% /dev
tmpfs                          2024048         2064   2021984            1% /dev/shm
tmpfs                          2024048          500   2023548            1% /run
tmpfs                          2024048            0   2024048            0% /sys/fs/cgroup
tmpfs                          2024048           32   2024016            1% /tmp
/dev/sda1                       487652        90139    367817           20% /boot
/dev/mapper/rfremix_sky-home 424460680     47830948 355045248           12% /home

[root@sky /]# repquota /
repquota: Mountpoint (or device) / not found or has no quota enabled.
repquota: Not all specified mountpoints are using quota.
[root@sky /]#

系统:

[root@sky /]# uname -a
Linux sky.dep1 3.12.10-300.fc20.x86_64 #1 SMP Thu Feb 6 22:11:48 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@sky /]# python --version
Python 2.7.5
[root@sky /]#

所以,问题 :我在做什么错?

还是在bash,perl等上还有其他具有更好性能的解决方案(256 ** 3 = 16.777.216文件夹)?

更新 (对于Thomas Orozco):

[root@sky /]# df -i
Файловая система                Iнодов IИспользовано IСвободно IИспользовано%     Cмонтировано в
/dev/mapper/rfremix_sky-root   3276800       3276800         0           100% /
devtmpfs                        504130           422    503708             1% /dev
tmpfs                           506012            13    505999             1% /dev/shm
tmpfs                           506012           504    505508             1% /run
tmpfs                           506012            13    505999             1% /sys/fs/cgroup
tmpfs                           506012            41    505971             1% /tmp
/dev/sdb3                    164849116         96453 164752663             1% /mnt/win
/dev/sda1                       128016           380    127636             1% /boot
/dev/mapper/rfremix_sky-home  26968064        218284  26749780             1% /home
tmpfs                           506012          4364    501648             1%         /home/chip/.chrome/ramdisk
[root@sky /]#

正如@RicardoCárdenes所说-异常的原因-文件系统中inode数量的限制。 在另一个具有足够的inode的挂载点(在我的情况下是/ home)-此脚本运行良好。

正如@Krumelur所说,对我来说是合适的解决方案-根据需要创建目录。

谢谢大家!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM