Когда я делаю (с обычными файлами):
echo 1 > source echo 2 > target cp -l target target2 mv source target cat target2
тогда я получаю 2
. Это означает, что ничего не записано target
, просто отключено, прежде чем source
переименовано, я думаю. С помощью ls -i -1
я могу проверить, что source
сохраняет свой номер инода, даже если он target
существовал раньше.
Еще один тест
mv /dev/urandom /dev/sr0
Он не отправляет данные на мой оптический привод. Вместо этого после этого /dev/sr0
ведет себя как /dev/urandom
.
Вывод: ваш /dev/sda
был заменен какой-то другой «записью» (которая также потеряла свое первоначальное имя). Перезагрузка исправит это, если ваша система не старая (или необычная), которая сохраняет эти файлы устройства как статические.
И что именно
/dev/sda
?
Это специальный файл, который (обычно) соответствует вашему жесткому диску или другому хранилищу. Unix идентифицирует такие ресурсы по старшему и младшему номерам. Как правило, старший номер идентифицирует драйвер устройства, а младший номер идентифицирует конкретное устройство (возможно, из многих), которым управляет драйвер. Чтобы увидеть эти цифры попробуйте ls -l /dev/sda
. Мой вывод:
brw-rw---- 1 root disk 8, 0 Jul 8 00:48 /dev/sda
Этот 8, 0
фрагмент здесь <major>, <minor>
кортеж.
Я написал, что /dev/sda
обычно соответствует вашему HDD, потому что в вашем случае (после mv
) у вас теперь есть что-то еще под этим именем.
Это каталог, где смонтирован жесткий диск / SSD?
Нет. Когда вы монтируете его, команда
mount /dev/sda /a/directory/to/mount/to/
так что это две разные вещи.
(Обратите внимание, что это обычно /dev/sda1
или так, что передается mount
команде, а не /dev/sda
. Это потому, что sda1
соответствует разделу, а sda
соответствует всему жесткому диску. Файловые системы обычно живут внутри разделов, но возможно иметь один на устройстве, где нет разделов, поэтому может произойти приведенная выше команда. Сравнение: использование конфигурации с одним разделом диска ).