Если вас больше всего беспокоит невнимательность пользователя, возможно, лучше запросить подтверждение. например:
delete_cwd() {
printf 'Are you sure you want to unlink everything in %s? ' "$(pwd)"
IFS= read REPLY
case $REPLY in
[yY]|[yY]es) find. -delete;;
*) return 1;;
esac
}
Обратите внимание, что -delete
не стандартизирован, поэтому вы можете использовать:
find. ! -name. -exec rm -rf {} +
Или, если вы хотите, чтобы ваш пользователь подтверждал каждое удаление, вы можете пропустить эту функцию и просто выполнить:
find. ! -name. -depth -ok rm -rf {} +
Это
Read Device Identity failed: scsi error unsupported scsi opcode
и это
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
означает, что ваш диск неправильно реагирует на некоторые команды SCSI.
Если диск правильно поддерживает SMART, это должно выглядеть так:
$ sudo hdparm -I /dev/sda
...
Commands/features:
Enabled Supported:
* SMART feature set
Как
To continue, add one or more '-T permissive' options.
, вы можете добавить -T permissive
или -T verypermissive
, чтобы попытаться получить некоторый результат. Вместо запуска короткого теста сделайте что-нибудь вроде
$ sudo smartctl -a /dev/sda
для просмотра всех отчетов SMART.
Но SMART может быть просто сломан для вашего диска.
SMART — это функция прошивки жесткого диска. Если прошивка жесткого диска не запрограммирована на предоставление этой функции, то она просто недоступна. Использование другого инструмента Linux для доступа к этому не будет иметь значения. Не имеет значения и запись в таблице базы данных.
Тем не менее, иногда мосты USB -–-SATA, которые используются во многих корпусах USB, не позволяют передавать команды SMART. Чтобы проверить это, нужно открыть корпус, вынуть жесткий диск и напрямую подключить жесткий диск через SATA к материнской плате. Если SMART работает с этой настройкой, то это микросхема моста. Если это не так, это жесткий диск.
smartctl
также имеет опцию -d
для выбора обходных путей для ряда устройств, где мост или какая-либо другая проблема блокирует команды SMART. См. man smartctl
. Но я бы не рекомендовал использовать какие-либо из них, если вы не уверены, что ваше оборудование соответствует этим устройствам.