Как быстро (как можно быстрее) перечислить десять файлов из очень большого каталога, любых файлов?

Прошу прощения, если это не ответ, но я не могу комментировать.

У меня была такая же проблема с этой ошибкой. И я «разрешил» его, используя «удалить часть» вашего скрипта:

#!/bin/bash

#edit.1: It will be launched by root, so we have to use full path here.
DIR=/home/USERFOLDER/.cache/sessions/

delete_sessions(){
    # Deletes whatever is in DIR
    rm -r -- "$DIR"
}

is_directory(){
    if [ -d "$DIR" ]; then
        delete_sessions
    else 
        echo "wtf man, it's not there?!"
    fi
}

is_directory 

Я выполняю модифицированный сценарий этого режима при перезагрузке и завершении работы.

Это может быть установлено, в соответствии с инструкциями на сайте: http://en.kioskea.net/faq/3348-ubuntu-executing-a-script-at-startup-and-shutdown

1
задан 23 August 2016 в 16:05

2 ответа

Попробуйте cd войти в каталог и открыть vim, затем один раз в vim, запустите эту команду ex

:args `find . -type f \| head -n10`

Мое тестирование показало, что vim сам обрабатывал файлы с пробелами в них [!d1 ]

2
ответ дан 23 May 2018 в 06:53
  • 1
    Извините, я не понимаю вашего смысла. Я имею в виду, как я узнаю, что имена файлов в каталоге находятся в одном шаблоне. – lerner 23 August 2016 в 12:33
  • 2
    Как вы думаете, find будет быстрее, чем ls? а также почему статическая настройка имен файлов по псевдонимам? – heemayl 23 August 2016 в 12:35
  • 3
    Спасибо за Ваш ответ. Но ваш ответ отчасти не такой надежный. Если некоторые файлы содержат пробел, я открою эти несуществующие файлы. – lerner 23 August 2016 в 12:37
  • 4
    @heemayl на самом деле не имеет значения, является ли поиск более быстрым, чем ls, потому что из-за природы UNIX-каналов обрабатывается только 10 файлов, а затем находит выходы. однако я тестировал 2222 файла, и, похоже, поиск был немного быстрее, также, как вы, наверное, знаете, вы никогда не должны разбирать ls – the_velour_fog 23 August 2016 в 12:39
  • 5
    @heemayl статически настраивает файлы по псевдониму, его только первое, что я думал, я тестировал его на своей машине, и он работал, поэтому я опубликовал. – the_velour_fog 23 August 2016 в 12:44

У вас, вероятно, есть mlocate, установленный на вашем компьютере (если нет, я рекомендую вам это сделать, это очень полезно для поиска файла)

С его установкой (и инициализированной первым вызовом mlocate ) вы можете попробовать что-то вроде:

locate /path/to/directory | head -n [qty of file wanted]

Это должно работать так же хорошо, как и ls, и предоставит вам список n-файла с полным адресом

0
ответ дан 23 May 2018 в 06:53

Другие вопросы по тегам:

Похожие вопросы: