[英]Ubuntu mv command only copied, but the source files still exist
我不小心為我的源文件夾執行了沒有 ./ 的 mv 。 它從根文件夾復制文件,但沒有刪除它們。
我檢查了一些從根目錄復制到新文件夾中的文件,它們似乎仍在根目錄和新文件夾中。 所以我認為命令沒有移動,而是復制了文件。 我只是想了解這里到底發生了什么。 有任何想法嗎?
這是我執行的命令:bla:my/current/folder$ mv -v /* sub_folder/
如您所見,您正在從根目錄進行復制,您正在使用從/*
進行的復制,這意味着從根文件系統復制至該子文件夾。 對於沒有特權的用戶,您將無法執行此操作,因為默認情況下您無法在主文件夾之外寫入文件。
只需刪除*
之前的/
然后重試。 或在/
之前添加點,例如: mv -v ./* sub_folder/
我測試了命令,這些是我的發現。
mv 有兩個階段“復制”和“刪除”。
當用戶具有讀訪問權限但無法在沒有寫訪問權限的情況下刪除時,mv 會復制。
如果 mv 進程在其“復制”階段終止,則不會刪除任何已復制的文件。
mv 在遞歸刪除目錄之前復制目錄中的所有文件。 但如果目標是文件列表(可能是外殼擴展),則“刪除”階段會在每次“復制”之后運行,而不是在所有列出的文件都已復制之后運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.