- 1
find $PWD -maxdepth 0 2>/dev/null
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−135
find $PWD -maxdepth 0 2>/dev/null
Вместо "ls"...
Ymilij 06.05.2010 07:44 # 0
Так: find $PWD -maxdepth 1 2>/dev/null работает, но не вижу принципиального отличия от "find $PWD -maxdepth 1".
13thslayer 06.05.2010 07:54 # +1
Dummy00001 07.05.2010 12:33 # +1
ls помимо чтения списка файлов делает еще две вещи: stat() на каждый элемент каталога и сортировка имен. find ни первого ни второго не делает.
представте разницу в производительность если читается каталог с >10K файлов. find выдаст результат мнгновенно (opendir()/readdir() x N/closedir()) а ls будет Н минут тормозить (opendir()/{ readdir(); stat(); } x N/closedir(); qsort()).
и даже qsort() тоже может подтормаживать если имена очень длиные, что весьма вероятно на каталогах с большим количеством файлов. при среднем 100 символов в имени + 10К файлов == ~1МБ памяти. оно относительно быстро, но просто излишне в некоторых ситуациях.
Dummy00001 07.05.2010 12:39 # 0