Quando eu faço (com arquivos regulares):
echo 1 > source
echo 2 > target
cp -l target target2
mv source target
cat target2
então eu recebo 2
. Isso significa que nada é escrito para o target
, é apenas desvinculado antes que source
seja renomeado, eu acho. Com ls -i -1
, posso verificar que source
mantém seu número de inode, mesmo que target
existisse antes.
Outro teste é
mv /dev/urandom /dev/sr0
Não envia dados para minha unidade óptica. Em vez disso, depois disso, /dev/sr0
se comporta como /dev/urandom
.
A conclusão é: seu /dev/sda
foi substituído por alguma outra "entrada" (que também perdeu seu nome original). A reinicialização corrigirá isso, a menos que seu sistema seja antigo (ou incomum) e mantenha esses arquivos de dispositivo como estáticos.
Also what exactly is
/dev/sda
?
É um arquivo especial que (geralmente) corresponde ao seu HDD ou outro armazenamento. O Unix identifica esses recursos por um número maior e um número menor. Geralmente, o número principal identifica o driver do dispositivo e o número menor identifica um dispositivo específico (possivelmente de muitos) que o driver controla. Para ver esses números, tente ls -l /dev/sda
. Minha saída é:
brw-rw---- 1 root disk 8, 0 Jul 8 00:48 /dev/sda
Este 8, 0
fragmento é uma <major>, <minor>
tupla aqui.
Eu escrevi que /dev/sda
geralmente corresponde ao seu HDD porque no seu caso (depois de mv
) você agora tem outra coisa sob este nome.
Is it the directory where the hard drive/SSD is mounted?
Não. Quando você monta o comando é como
mount /dev/sda /a/directory/to/mount/to/
então essas são duas coisas diferentes.
(Observe que geralmente é /dev/sda1
ou algo assim que é passado para um comando mount
, não /dev/sda
. Isso porque sda1
corresponde a uma partição enquanto sda
corresponde a o todo o HDD .Os sistemas de arquivos geralmente vivem dentro de partições, mas é possível ter um em um dispositivo onde não há partições, então o comando acima pode acontecer.Compare: Usas de configuração de disco de partição única ).