У меня есть каталог с кучей изображений. Идя туда с графическим интерфейсом и нажав CTRL + A (выбрав все файлы), он рассчитан на 5058 изображений. Выполнение `ls. | wc -l-файлов, он насчитывает 5060 файлов.
У меня есть подозрение, что «отсутствующие файлы» являются изображениями, иначе программа, которую я использую на ней, вернула бы сообщение об ошибке (и оно насчитывает 5060 файлы тоже).
Если ваша команда ls сглажена на ls -a или ls -A, ее вывод включает в себя два дополнительных элемента: . и .., которые относятся к самой директории . и ее родительскому объекту (.. ), а также другие файлы, которые начинаются с ведущего ., поэтому есть разница между 5058 и 5060 файлами. Они не отображаются в файловом менеджере графического интерфейса просто потому, что они построены таким образом, однако большинство приложений Unix построены, чтобы распознать существование этих двух.
Кроме того, никогда не используйте ls | wc -l для подсчета файлов. Анализ вывода ls имеет множество проблем, и, как правило, лучше всего избегать такой практики. Если вам нужно подсчитать файлы в каталоге через командную строку, см. Раздел Почему `ls -l` подсчитывает больше файлов, чем я? для правильных методов.
В этом конкретном случае я рекомендую вам использовать find -maxdepth 1. find печатает все файлы и каталоги и не скрывает те файлы или каталоги, которые начинаются с ведущего .