簡體   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