Как порядок, в котором смолокуренный завод на файлах определил?

Я никогда не пробовал, но скопируйте эти двоичные файлы, до которых Вы нуждаетесь от своей установки Windows ~/.wine/drive_c/windows/ должен работать

Но с другой стороны, почему Вы не попытались бы найти замену, которая работает исходно в Linux?

15
18.03.2014, 05:44
2 ответа
[112511]Так как [113124]@samiam[113125] заявил, что список возвращается вам в полуслучайном порядке через [113126]readdir()[113127]. Я просто добавлю следующее.[12305]Возвращаемый список - это то, что я бы назвал порядком каталогов. На старых файловых системах порядок часто является порядком создания, в который были добавлены записи файлов в таблице каталога. Конечно, есть оговорка, что когда запись в каталоге удаляется, эта запись затем перерабатывается, так что любые последующие файлы, которые хранятся, будут заменять предыдущую запись, так что порядок больше не будет основываться исключительно на времени создания.[12306]В современных файловых системах, где структуры данных каталога основаны на дереве поиска или хэш-таблице, порядок практически непредсказуем. [12307]Примеры[12308]Показывая файлы, созданные при выполнении команды touch, мы видим, что были назначены следующие коды.[12309]Таким образом, мы видим, что расширение скобки, используемое touch, создает имена файлов в алфавитном порядке, и поэтому при записи на жесткий диск им присваиваются порядковые номера кодов. (Это, однако, не влияет на порядок в каталоге.)[12310]Выполнение вашей команды [113128]tar[113129] несколько раз, похоже, указывает на то, что есть порядок в списке, так как выполнение его несколько раз дает один и тот же список каждый раз. Здесь я прогонял его 100 раз, а затем сравнивал прогоны, и все они идентичны.[12311] Если мы стратегически удалим скажем [113130]dir/e [113131] и затем добавим новый файл [113132]dir/ee [113133], то увидим, что этот новый файл занял то место, которое [113134]dir/e [113135] занимал ранее в таблице записей каталогов.[12312] Теперь сохраним вывод из одного из циклов [113136] для [113137] выше, только из первого. [12313]Теперь, если мы повторим цикл [113138] для [113139], который снова выполнит команду [113140]tar[113141] 100 раз, и сравним этот второй цикл с предыдущим:[12314]Мы заметили, что [113142]dir/ee[113143] занял место [113144]dir/e[113145] в таблице каталогов.[112532].
14
27.01.2020, 19:49
[12303] readdir()[113115] в основном. Когда tar узнает, какие файлы находятся в каталоге, он напрямую запрашивает у ядра список файлов через [113116]opendir()[113117], после чего следует [113118]readdir()[113119]. [113120]readdir()[113121] не возвращает файлы в определенном порядке; способ упорядочения файлов зависит от файловой системы, используемой ядром Linux.[12304]Увы, для [113122]tar[113123] нет возможности сортировать файлы в подкаталогах (добавление одного файла оставлено как упражнение для чтения).[112510].
8
27.01.2020, 19:49

Теги

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