Как сопоставить идентификаторы жестких дисков Linux, такие как «sd 3: 0: 0: 0:», с такими, как «ata8:»? [дубликат]

Хотя приведенное выше ответы все используют rm , rm на самом деле может быть довольно медленным при удалении большого количества файлов, как я недавно заметил, когда извлечение ~ 100K файлов из архива .tar на самом деле заняло меньше времени, чем удаление их. Хотя это на самом деле не отвечает на заданный вами вопрос, лучшим решением вашей проблемы может быть использование другого метода удаления файлов, например, одного из одобренных ответов на этот вопрос .

Лично я предпочитаю использовать rsync -a --delete . Я считаю, что этот метод работает достаточно быстро, так что его простота использования стоит того, наиболее популярный ответ на этот вопрос , в котором автор написал программу на языке C, которую вам нужно будет скомпилировать.(Обратите внимание, что при этом каждый обрабатываемый файл будет выводиться на стандартный вывод, как и rm -rv ; это может значительно замедлить процесс. Если вам не нужен этот вывод, используйте rsync - aq --delete или вместо этого перенаправить вывод в файл.)

Автор этого ответа говорит:

Теперь программа (в моей системе) удалит 1000000 файлов за 43 секунды. Самой близкой к этому была программа rsync -a --delete, которая занимала 60 секунд (которая также выполняет удаления по порядку, но не выполняет эффективный поиск в каталогах).

Я обнаружил, что этого достаточно для моих целей. Также потенциально важно из этого ответа, по крайней мере, если вы используете ext4:

Как предусмотрительно, следует удалить затронутый каталог и после этого переделать его. Каталоги только увеличиваются в размере и могут оставаться плохо работающими даже с несколькими файлами внутри из-за размера каталога.

2
20.03.2016, 19:46
1 ответ

Для сопоставления имени устройства ядра с именем устройства ata (многие в одно):

readlink /sys/class/block/sda | tr / \\012 | grep '^ata'

Для сопоставления от имени устройства ata до имени устройства ядра (от одного ко многим):

ls -l /sys/class/ata_port/ata1/device/host*/target*/*/block
0
27.01.2020, 22:48

Теги

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