Вы, конечно, можете использовать find
, но также реже updatedb
и locate
.
Во-первых, нам нужно использовать updatedb
для создания базы данных существующих файлы, которые будут использоваться последующими командами locate
. Идти к /home/me/files
и сделать:
updatedb --require-visibility 0 -o locate.db -U.
Теперь мы готовы использовать locate
вместе с Bash {a..b}
синтаксис для поиска списка файлов. Например:
$ locate -d./locate.db file_{112..125}.txt
./files_11/file_112.txt
./files_11/file_113.txt
./files_12/file_124.txt
./files_12/file_125.txt
$ locate -d./locate.db file_{100..105}.txt
./files_10/file_100.txt
./files_10/file_102.txt
./files_10/file_105.txt
$ locate -d./locate.db file_{103..106}.txt
./files_10/file_105.txt
./files_10/file_106.txt
Чтобы показать только количество найденных файлов, направьте locate
вывод через wc -l
.
Преимущество этого решения в том, что locate
работает очень быстро.
Недостатком является то, что вам придется повторно -создавать базу данных вручную. каждый раз, когда добавляются или переименовываются новые файлы (или, возможно, используетсяinotify
)и что locate
не может заменить найденные имена файлов на NUL, что привести к тому, что wc -l
вернет неверный счетчик в случае файлов, которые имеют новую строку в их именах.
В Fedora пакеты Python 3, отличные от интерпретатора, имеют префикс python3-
; таким образом dnf install python3-devel
.
Fedora 31 использует Python 3.7. Он подошел к концу, поэтому вам следует обновить его. Fedora 32 даст вам Python 3.8, 33 даст вам 3.9.