2016-07-04 127 views
0

我想知道如何根據每個文件夾內的文件的文件名將多個文件夾移動到另一個文件夾。 我的意思是,我們假設我有大量的文件夾,每個文件夾的名稱都以'folder *'開頭,每個文件夾包含3個文件。具體來說,一個文件包含例如'-100','-200'或'-300'的字符串。Unix - 移動包含文件名稱的文件夾

我想根據這個字符串移動包含文件的文件夾,並將它們放在一個名爲'string'的文件夾中。例如,把每個文件夾包含其中包含字符串「-100」到文件夾「FOLDER1'I'm想是這樣的:

查找文件夾* -name」文件「-exec mv {}文件夾* FOLDER1

但它返回-bash:/ usr/bin/find:參數列表太長。

我怎麼能通過更少的參數來找到每一步,所以我不明白這一點。

提前致謝。

最好。

+0

它不是很清楚你正在嘗試做的,你能不能給你有/想要的前後目錄結構的一個例子。 –

+0

對不起!這篇文章有點模糊。 我在一個包含一大組文件夾的路徑中,這些文件夾的名稱由文件夾*開始(包含每個文件3個文件,其中一個文件可以包含字符串'-100','-200'或'-300'),另一個文件夾一個叫做FOLDER1(空)。 我想將包含文件的每個文件夾都包含字符串「-100」移動到FOLDER1,以便我可以根據包含文件的文件名對文件夾進行分類。 問題是,我得到*參數列表太長錯誤*當做 *找到文件夾* -name'100'-exec mv {}文件夾* FOLDER1 * – jdp89

回答

0

使用你的榜樣,幷包含所有的文件夾最上面的文件夾中運行,我相信,你需要的是這樣的:

grep -rlw folder* -e "-100" | xargs -I % mv % FOLDER1

+0

非常感謝您的回答!,但我仍然得到 *參數列表太長*將所有文件名列表*文件夾**傳遞給grep時發生錯誤,與find發生的方式相同... – jdp89

相關問題