
我知道這個問題已經被問了一百萬次,但我找不到我具體想做的事情的答案。
這是目錄結構:
Main Folder1
|
|-Subfolder 1
|-Subfolder 2 HasAReallyLongName
|---files
|-Subfolder 3-1000
Main Folder2
|
|-Subfolder 2 HasAReallyLongName
|---files
- 我想嘗試將 Subfolder2 及其檔案移動到不同的目錄。
- 我不想複製然後刪除任何內容,因為我沒有足夠的空間。
- 我不想這樣做,
mv /Main/Sub2/* /Main2/
因為這會將所有內容放入/Main2
資料夾中,而不是放在子目錄中。 - 我不想這樣做,
mkdir /Main2/...
因為它的名稱很長(主要是時間戳),而且我不想手動輸入它(並且可能會弄亂它) - 據我所知,
rsync
也複製文件,所以我不確定它是否有效。
任何建議或其他工具將不勝感激!
答案1
這非常簡單。
mv /Main1/Sub2 /Main2
/Main2/Sub2
這將建立包含原始目錄的所有內容的目錄,並刪除該目錄/Main1/Sub2
。如果你不想輸入全名,可以使用 glob;當您輸入足夠的字元以將目錄名稱與目錄中的其他所有內容區分開來時,只需停止鍵入名稱並以結尾即可*
(小心!):
mv /Main/Sub* /Main2
可能導致其無法如預期工作的可能問題:
裡面已經有一個
/Main2
同名的目錄了/Main1/Sub2
。這會導致錯誤directory not empty
,因為mv
拒絕覆蓋現有目錄。如果是這種情況,請先重新命名(或刪除)現有目錄/Main2
:mv /Main2/Sub2 /Main2/SomethingElse
使用不正確的路徑。請記住,一切都區分大小寫,並注意相對路徑和
~
擴展。這些都會根據目前工作目錄而有所不同/Main1/Sub2 Main1/Sub2 ~/Main1/Sub2
您無權寫入來源目錄和/或目標目錄。從錯誤訊息中可以非常明顯地看出這一點:
mv: cannot move 'thing' to '/place': Permission denied
。在這種情況下,您可以執行我最喜歡的命令來解決這個問題sudo !!
答案2
明白了:使用sudo mv /Main1/Sub2 /Main2
對我來說是這樣。我想主要的區別是root。