Page 1 of 1

長久來的疑問

Posted: Thu Jan 18, 2007 8:46 pm
by betaparticle
很久很久之前,我剛開始用 linux。
有些東西要從別顆硬碟搬過來。
當然最直覺的方法,就是開視窗,然後整個目錄mv過來。
例如,A目錄裡,有三個檔案,叫做A1, A2, A3

只是有時候,目的地的空間不足,mv到一半就會停下來。
例如,mv A2裡發現空間不夠,目的地目錄A,有A1,而原目錄有A2, A3。

當然,我就會把空間清一清,然後,再繼續。也就是重覆原來的動作。
在windows底下,這個動作沒有問題,它會說,有個同名的目錄,底下若是有同名的檔案,問你是不是要把原來的檔案覆蓋。
當然是選「要」。它就會繼續把A2, A3放到目的地目錄A去,然後就結束。

但是在 linux 下,同樣的動作,就會把目的地目錄A會覆蓋過去,
結果,目的地目錄A就會只剩下A2, A3,而A1就會不見。
我曾經這樣失去許多資料。

我可以理解,這也是一個覆蓋的方法。
所以,長久以來,我要是遇到這種情況,就會一層層去打開,一層層去copy。在資料少的時候,還可以負擔。
最近我要整理6顆硬碟中的許多資料,加起來有500G。一定會搬來搬去。目錄深度也不少。我很怕這種情況發生。

請問大家都不會遇到我的問題嗎?是怎麼辦到的?

Posted: Fri Jan 19, 2007 12:01 am
by scsi
應該不會這樣吧,你只是用cp,原目錄裡應該還是A1, A2, A3才是吧

還是你是使用mv :roll:

Posted: Fri Jan 19, 2007 1:36 am
by betaparticle
scsi wrote:應該不會這樣吧,你只是用cp,原目錄裡應該還是A1, A2, A3才是吧

還是你是使用mv :roll:
應該是mv,sorry,我上面打錯了,我改一下。

Posted: Fri Jan 19, 2007 8:52 am
by scsi
我剛試了一下mv

Code: Select all

scsi@scsihome tmp $ mv ../A .
mv:是否覆寫 ‘./A’? y
mv: 無法進行跨裝置的移動 (‘../A’至‘./A’);無法移除目標檔案或目錄: 是個目錄
scsi@scsihome tmp $ mv -f ../A .
mv: 無法進行跨裝置的移動 (‘../A’至‘./A’);無法移除目標檔案或目錄: 是個目錄
如果要mv的目錄已經存在,似乎就無法mv了 :shock:

Posted: Fri Jan 19, 2007 12:03 pm
by Si
如果是 KDE 話,一樣會問你是否要覆蓋。

Posted: Fri Jan 19, 2007 12:23 pm
by betaparticle
Si wrote:如果是 KDE 話,一樣會問你是否要覆蓋。
嗯,我是用gnome的,會問要不要覆蓋,然後就蓋下去,就慘劇發生。
後來改用mv的,我那時以為是怕我下錯,所以我又再下一次 mv -f,
然後也是慘劇發生。

雖然只要不用 mv -f,單純用 mv 可以讓我不致於把東西搞丟,卻也讓我只能一層層進去,慢慢mv。很累。

那你們都怎麼做的?都不用搬動檔案嗎?
願聞其詳。

Posted: Fri Jan 19, 2007 3:41 pm
by ranma37
沒想到 mv 會有這種問題呀
如果是 mv src/A/* dst/A/ 不知道會不會好一點?
我建議你先用 cp 確定沒問題後再 rm

Posted: Fri Jan 19, 2007 3:54 pm
by scsi
ranma37 wrote:沒想到 mv 會有這種問題呀
如果是 mv src/A/* dst/A/ 不知道會不會好一點?
我建議你先用 cp 確定沒問題後再 rm
我試過,如果src/A/B跟 dst/A/B這個目都已存在

mv /src/A/* dst/A

會發生mv /src/A/B 失敗,不知道有沒有人跟我是一樣的?

Posted: Fri Jan 19, 2007 7:40 pm
by Si
betaparticle wrote:嗯,我是用gnome的,會問要不要覆蓋,然後就蓋下去,就慘劇發生。
後來改用mv的,我那時以為是怕我下錯,所以我又再下一次 mv -f,
然後也是慘劇發生。

雖然只要不用 mv -f,單純用 mv 可以讓我不致於把東西搞丟,卻也讓我只能一層層進去,慢慢mv。很累。

那你們都怎麼做的?都不用搬動檔案嗎?
願聞其詳。
我就用 KDE 覆蓋,也沒問題...

例如

Code: Select all

mkdir dir1 dir1/dir2 dir2
touch dir1/dir2/test
touch dir2/test2
然後用 KDE 把 dir1/dir2 移過來覆蓋 ./dir2
$ ls dir2
test test2

Posted: Thu Feb 01, 2007 10:09 pm
by MengC
我不知道有沒有會錯意..但如果情況是這樣的話..何不試一下以下的軟件呢?

Unison File Synchronizer
http://www.cis.upenn.edu/~bcpierce/unison/

希望對閣下有用[/url]