2015-10-28 54 views
0

我試圖將文件夾及其內容移動到服務器上的其他位置。 文件夾可以在任何地方,但我必須將其移動到特定位置。 到目前爲止,我已經嘗試過這樣的事情,但它不工作將文件夾從未知位置移動到服務器上的不同位置

find/-name 'test_folder' -exec mv 'test_folder' /Users/michael/Downloads/here/. {} +

任何建議,我究竟做錯了什麼?

此外,在.sh中該命令的變體是什麼?

+1

的[擊:找到並複製]可能的複製(http://stackoverflow.com/questions/1562102/bash-find-and-copy) –

+0

我需要移動整個文件夾,不只是他的內容tho – Michael

+0

你基本上寫了'find <東西我不知道它在哪裏> mv <東西我不知道它在哪裏>/Users/michael ....'你想要告訴它到'mv <找到命令的結果>到/ Users/michael ....'。請看下面的chepner的答案。 –

回答

2

您必須給mv找到的文件夾的全名,而不僅僅是立即名稱:/some/other/dir/test_folder,而不是test_folder。使用

find/-name test_folder -exec mv '{}' /Users/michael/Downloads/here + 

進展:+形式的-exec似乎需要{}是命令的最後一個參數,不像與;版本。

# Less efficient, as `mv` is called for every found directory 
find/-name test_folder -exec mv '{}' /Users/michael/Downloads/here \; 

# More complicated, but less overhead 
find/-name test_folder -exec sh -c 'mv "[email protected]" /Users/michael/Downloads/here' {} + 
+0

找到:-exec:no terminating「;」或「+」? :( – Michael

+0

也要小心碰撞,否則你可能會以'/ Users/michael/Downloads/here/test_folder/test_folder/test_folder/...'結尾# – ghoti

+0

@ghoti'{}'展開爲完整,唯一的名稱當前文件夾,不只是'test_folder'。 – chepner

相關問題