Если вам нужно что-то, что будет обрабатывать файлы, содержащие встроенные новые строки и другие непечатаемые символы, это решение подойдет. Но для вашего задания это почти наверняка будет излишеством.
find . -maxdepth 1 -type f -print0 | tr -dc '\0' | wc -c
Что это делает, так это отбрасывает все, кроме концевого \0
в конце каждого имени файла. Затем он подсчитывает эти символы, что дает количество файлов.
1) По моему опыту - никакой разницы. Используется на моем ноутбуке более двух лет. 2) Влияет ли LVM на производительность? 3) LVM (и Veritas) фактически стали стандартом для любой серьезной компании. Не только из-за управления дисковым пространством, но и для управления данными (когда вам нужно переместить / скопировать онлайн-базу данных с почти полностью заполненного сервера дискового пространства и т. Д.). По моему опыту, единственная опасность с LVM - это действия пользователей / администраторов, такие как неправильные команды с изменением размера и удалением пространства.
Здесь LVM влияет на производительность SSD.
Центос -7.4.1708 ядро -3.10.0 -693.el7.x86 _64 lvm2 -2.02.171 -8.el7.x86 _64 фио -3.1 -1.el7.x86 _64
INTEL SSDPE2ME016T4
] pvcreate /dev/nvme0n1
] vgcreate -n vgext /dev/nvme0n1
] lvcreate -n lvtest -L 50G vgext
] dd if=/dev/sda of=/dev/vgext-lvtest bs=1G count=10
# DO 128k/10thr random read on nvme0n1
] fio --readonly -filename=/dev/nvme0n1 -direct=1 -rw=randread -ioengine=psync -name=job1 -size=10G -bs=128k -blockalign=4k -thread -numjobs=10
# get about 2000MB/s
# DO 128k/10thr random read through LVM
] fio --readonly -filename=/dev/vgext/lvtest -direct=1 -rw=randread -ioengine=psync -name=job1 -size=10G -bs=128k -blockalign=4k -thread -numjobs=10
# get about 400MB/s