2016-12-13 26 views
3

我一直在爲此工作數天,但一直未能弄清楚。做了很多研究,但迄今沒有任何工作,所以我想我會問。所以這裏是我在哪裏:我正在運行bash 3.2.57(1) - 在終端中發佈,並且能夠獲取下面的代碼來工作。它所做的只是在我正在處理的文件服務器上「cd」到文件夾中時,它將用'_'替換任何多餘的語法。原因是我將文件服務器從mac遷移到Microsoft Sharepoint,它不喜歡'/'。終端將命令應用於所有子目錄

for i in *; do mv "$i" "${i//[\/<>:\\|*\'\"?]/_}"; done 

現在我試圖讓代碼在所有子目錄中運行。文件服務器非常笨重,大量的子文件夾在他們的名字中有空格,我無法解決。 任何幫助將是偉大的!提前致謝。

+1

mv合成器上的好工作。 –

回答

1

使用發現,而不是爲:

find . -type f | while read i ; do echo "$i" ; done 

如果輸出是您希望操作(如果不是國防部查找選項),然後替換你的mv命令回聲的文件列表。