使用 mv 指令覆蓋 /dev/sda

使用 mv 指令覆蓋 /dev/sda

我在編寫命令時犯了一個錯誤,速度太快並且「覆蓋」(?)而不是在目錄/dev/sda中移動檔案。/dev我怎樣才能恢復它?

又到底是什麼/dev/sda?是硬碟/SSD掛載的目錄嗎?

答案1

當我這樣做時(使用常規文件):

echo 1 > source
echo 2 > target
cp -l target target2
mv source target
cat target2

然後我明白了2。這意味著沒有任何內容寫入,我認為target它只是在重命名之前取消連結。sourcels -i -1可以檢查是否source保留其索引節點號,即使target以前存在。

另一個測試是

mv /dev/urandom /dev/sr0

它不會將數據發送到我的光碟機。相反,之後的/dev/sr0行為就像/dev/urandom.

結論是:你的/dev/sda被其他一些「條目」取代(也失去了原來的名稱)。重新啟動將解決此問題,除非您的系統是舊的(或不尋常的)系統,並且使這些裝置檔案保持靜態。


又到底是什麼/dev/sda

它是一個特殊文件,(通常)對應於您的 HDD 或其他儲存設備。 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(請注意,傳遞給命令的通常是or so mount,而不是/dev/sda。這是因為sda1對應於分割sda對應於整個硬碟。檔案系統通常位於分割區內,但也可能在沒有分割區的裝置上有一個檔案系統,因此可能會發生上述命令。比較:單一分割磁碟配置的用途)。

相關內容