特定的文件,我想編寫一個Ruby腳本會發現,如果從同一個模式的目錄,然後將文件夾和文件複製到裏面另一個目錄。如何獲得在模式匹配的目錄紅寶石
例如,如果我想找到目錄的模式是:
「./file/drive_Temp/**/tools/」
它可以是:
- ./file/drive_Temp/abc/tools/
- ./file/drive_Temp/def/tools/
- ./file/drive_Temp/xyz/tools/
只要前部以「./file/drive_Temp/」開頭並以「/ tools /」結尾即可。
我想要做的就是複製所有提到一個新的目錄符合目錄的模式中的文件:
有可能是在下面的目錄中的一些文件,如:
- ./file/drive_Temp/abc/tools/aaa.txt
- ./file/drive_Temp/abc/tools/bbb.txt
- ./file/drive_Temp/abc/tools/ccc.txt
- ./file/drive_Temp/def/tools/zzz.txt
- ./file/drive_Temp/def/tools/yyy.txt
- ./file/drive_Temp/def/tools/qqq.txt
- ./file/drive_Temp/xyz/tools/ttt.txt
- ./file/drive_Temp/xyz/tools/jjj.txt
那些txt文件將移動到目錄中稱爲工具
這是我的代碼:
if File.directory?('./file/drive_Temp/**/tools')
FileUtils.mv './file/drive_Temp/**/tools/*.*','./Tools'
end
不工作的兩個星號?因爲該文件夾無法移動到指定的目錄。或者我應該用glob
代替?
我覺得你的邏輯有點破。即使mv命令要工作,在./file/drive_Temp/abc/下的'tools'目錄的第一個副本之後,該命令將爲./file/drive_Temp/def/發出一個錯誤,作爲'tools'目錄將已經存在。請告訴你想要達到的目標是什麼? – grail
我改變了我的問題。我想檢查文件夾是否存在,然後將目錄中的文件移動到提供的新目錄 – kerrysugu
無需檢查現有文件夾,可以使用Dir並直接抓取與該文件夾匹配的文件模式。檢查發佈的答案。 – Gerry