- Максимальное количество файлов в папке Linux и Windows
- 2 ответа 2
- Размеры папок и дисков в Linux. Команды df и du
- Свободное место на диске (df)
- Опция -h
- Размер конкретного диска
- Размер папок на диске (du)
- Размер конкретной папки:
- Размеры файлов и папок внутри конкретной папки:
- How to set a file size limit for a directory?
- 1 Answer 1
- How to set limit on directory size in Linux? [closed]
- 2 Answers 2
Максимальное количество файлов в папке Linux и Windows
Вопрос не из простых Сколько можно сохранить картинок в папке в Linux т.е. допустим у меня 9 000 000 000 000 000 000 картинок я создаю древовидную иерархию из папок у меня допустим 5 ветвей, ограничение на число файлов и папок в ветви 6179 тогда общее количество возможно загружаемых файлов равно 6179 в 5 степени и равно 9 007 224 264 576 426 899 т.е. BIGINT (почти из за округления) Теперь сам вопрос Как определить максимальное возможное число файлов в папке или папок в папке в Linux и тоже самое в windows для сравнения? Моя иерархия будет нормально работать? Что думаете по этому поводу?
К чему вопрос вообще? причем тут SSH и SERVER? Почему сравниваются window и linux? Что было прочитано по поводу файловых систем?
— Мне почему-то кажется, что, если у вас 9 000 000 000 000 000 000 картинок и на сервере хватает места, чтобы хранить их, то нужно запихнуть их все в 1 pack-файл, построить индекс и добавлять новые элементы с конца. — Если вам при этом нужна возможность удаления существующих элементов, то осуществляйте отложенное удаление. Например, раз в месяц вы находите все картинки, которые точно можно удалить и атомарно перезаписываете весь pack-файл и индекс, удалив их. — И да, используйте любое готовое решение для этого, например, GridFS.
Теоретически ему нужно просто перейти на LVM, размещенную на нормальной СХД, но на практике, видимо ТС не может себе это позволить.
2 ответа 2
В FAT32 максимальное количество файлов на логическом диске 4,194,304.
В NTFS максимальное количество файлов на логическом диске 4,294,967,295.
В ext4 максимальное количество файлов на логическом диске до 4,294,967,295 (указывается при создании ФС).
8 миллионов терабайт (это 8 эксабайт), если только один файл — один байт.
Согласно википедии, общий объём цифровой информации, имеющейся на земном шаре в 2006 году, составил 161 эксабайт),
Но вот только большинство файловых систем выделяет как минимум 4 килобайта на файл, а это 32 тысячи эксабайт — немножко больше, чем существует во всем интернете :). Поэтому — «нет, не будет такая система работать».
С другой стороны, в линуксе (да и в видне) все сильно зависит от файловой системы, но по своему опыту могу сказать, что после 10000 файлов к каталоге независимо от файловой системы, начинаются тормоза.
Но в линуксе есть ещё такое понятие как inode (формально — номерки к файлам). Если они закончатся, то больше файлов не запишете, даже если ещё есть свободное место.
Вывод. Спуститесь с небес. Не будет у Вас сколько картинок. А если и будет — на одном компе их не сохранить (ну по крайней мере в следующие лет 5). Вон даже у инстаграмма статистика говорит о
В июле 2011 года было достигнуто число в 100 миллионов загруженных в сервис Instagram фотографий, а к августу таких фотографий стало уже 150 миллионов.
Размеры папок и дисков в Linux. Команды df и du
Рассмотрим, как используя команды df и du просматривать свободное место на дисках и размеры папок в Linux.
Свободное место на диске (df)
Для просмотра свободного и занятого места на разделах диска в Linux можно воспользоваться командой df.
Первым делом можно просто ввести команду df без каких-либо аргументов и получить занятое и свободное место на дисках. Но по умолчанию вывод команды не очень наглядный — например, размеры выводятся в КБайтах (1К-блоках).
df Файл.система 1K-блоков Использовано Доступно Использовано% Cмонтировано в udev 1969036 0 1969036 0% /dev tmpfs 404584 6372 398212 2% /run /dev/sda9 181668460 25176748 147240368 15% / . /dev/sda1 117194136 103725992 13468144 89% /media/yuriy/5EB893BEB893935F /dev/sda6 144050356 121905172 14804772 90% /media/yuriy/2f24. d9075
Примечание: df не отображает информацию о не смонтированных дисках.
Опция -h
Опция -h (или —human-readable) позволяет сделать вывод более наглядным. Размеры выводятся теперь в ГБайтах.
df -h Файл.система Размер Использовано Дост Использовано% Cмонтировано в udev 1,9G 0 1,9G 0% /dev tmpfs 396M 6,3M 389M 2% /run /dev/sda9 174G 25G 141G 15% / . /dev/sda1 112G 99G 13G 89% /media/yuriy/5EB893BEB893935F /dev/sda6 138G 117G 15G 90% /media/yuriy/2f24. d9075
Размер конкретного диска
Команде df можно указать путь до точки монтирования диска, размер которого вы хотите вывести:
df -h /dev/sda9 Файл.система Размер Использовано Дост Использовано% Cмонтировано в /dev/sda9 174G 25G 141G 15% /
Размер папок на диске (du)
Для просмотра размеров папок на диске используется команда du.
Если просто ввести команду без каких либо аргументов, то она рекурсивно проскандирует вашу текущую директорию и выведет размеры всех файлов в ней. Обычно для du указывают путь до папки, которую вы хотите проанализировать.
Если нужно просмотреть размеры без рекурсивного обхода всех папок, то используется опция -s (—summarize). Также как и с df, добавим опцию -h (—human-readable).
Размер конкретной папки:
du -sh ./Загрузки 3,4G ./Загрузки
Размеры файлов и папок внутри конкретной папки:
du -sh ./Загрузки/* 140K ./Загрузки/antergos-17.1-x86_64.iso.torrent 79M ./Загрузки/ubuntu-amd64.deb 49M ./Загрузки/data.zip 3,2G ./Загрузки/Parrot-full-3.5_amd64.iso 7,1M ./Загрузки/secret.tgz
How to set a file size limit for a directory?
I have a directory on my system which is used for a specific reason by applications and users, but I don’t want its size to be allowed to exceed 2GB, is there a way of setting up some sort of limit which just doesn’t allow the file size to exceed that or any other amount I decide to set for it in the future? When the size limit is exceeded it should undo the last change (though there should be an option to have it so that it just stops the operation and doesn’t care if half a file was copied and left there) and then display a warning to the user. I am running Ubuntu GNOME 16.10 with GNOME 3.22.
1 Answer 1
Usual filesystem quota on ext4 is per-user/group, not per-directory. ZFS can sort-of set a directory quota, by creating a filesystem of a fixed size off a ZFS volume. A simple trick, though, is to create a 2GB file, create a filesystem on it, and mount it at the desired folder:
$ touch 2gbarea $ truncate -s 2G 2gbarea $ mke2fs -t ext4 -F 2gbarea mke2fs 1.43.3 (04-Sep-2016) Discarding device blocks: done Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: bf1b2ee8-a7df-4a57-9d05-a8b60323e2bf Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done $ sudo mount 2gbarea up $ df -h up Filesystem Size Used Avail Use% Mounted on /dev/loop0 2.0G 6.0M 1.8G 1% /home/muru/up
In any case, filesystem quotas (or methods like this) aren’t as user friendly as you want. This method is one-way flexible, in that you can increase the size online, but decreasing it would be hard.
- touch : touch 2gbarea creates an empty file named 2gbarea .
- truncate : truncate is used to resize files (in this case, I resize the currently empty 2gbarea file to 2 GB using -s 2G ).
- mke2fs : mke2fs creates ext2/3/4 filesystems (in this case, ext4).
- mount mounts the filesystem on the given directory.
- df is used to list filesystem usage.
How to set limit on directory size in Linux? [closed]
I have read about limiting size of directory — like creating big files, formatting,mount. etc. But this all very complicated. Does exist utility or something else to set limit on already existing directory?
The problem that I need limit to specific directories. There are many users that have access to e.g. direcotry1, directory2, directory3. I need set limit for log dir, for data dir, for applications dir.
Based on the accepted answer and the linked tutorial, I’ve put together a script to automate the process, which is actually was made for a related answer: askubuntu.com/a/1043139/295286
2 Answers 2
Quota is based upon filesystems, but you can always create a virtual filesystem and mount it on a specific (empty) directory with the usrquota and/or grpquota flags.
- create the mount point
- create a file full of /dev/zero, large enough to the maximum size you want to reserve for the virtual filesystem
- format this file with an ext3 filesystem (you can format a disk space even if it is not a block device, but double check the syntax of every — dangerous — formatting command)
- mount the newly formatted disk space in the directory you’ve created as mount point, e.g. Code: mount -o loop,rw,usrquota,grpquota /path/to/the/formatted/disk/space /path/of/mount/point
- Set proper permissions
- Set quotas and the trick is done.
Tutorial here. Original answer here