在目錄中我有很多子目錄和每個子目錄中有許多不同類型的文件。我想從每個子目錄中提取具有特定擴展名的所有文件,並將其放在不同的文件夾中。是否有可能寫一個bash腳本來做到這一點?如果是這樣如何?如何移動只是將文件從嵌套子目錄特定的擴展?
1
A
回答
5
如果你有bash的V4和在.profile有
shopt -s globstar
,你可以使用:
mv ./sourcedir/**/*.ext ./targetdir
2
使用查找和一個簡單的while循環對子級做到這一點:
find directory -name '*.foo'|while read file; do
mv $file other_directory/
done
這將移動的所有文件與.foo
後綴來other_directory/
5
$ find <directory> -name '*.foo' -exec mv '{}' <other_directory> \;
find
通過目錄並遞歸搜索結構並對其找到的符合搜索條件的任何文件執行給定操作。
在這種情況下,-name '*.foo'
是搜索條件,並-exec mv '{}' <other_directory> \;
告訴find
到上發現的任何文件,其中'{}'
被轉換爲文件名和\;
表示命令的結束執行mv
。
1
您可以使用找到和xargs的以減少循環或多次調用需要MV。
find /path/to/files -type f -iname \*foo -print0 |
xargs -0 -I{} mv {} /path/to/other/dir
相關問題
- 1. 將具有特定擴展名的文件移動到目錄
- 2. 如何從特定目錄和所有子目錄中搜索特定擴展名的文件
- 3. 將子目錄中的特定文件移動到一個目錄 - python
- 4. 使用擴展的子目錄文件
- 5. Gitignore - 如何在特定目錄中排除特定擴展名的文件?
- 6. 用特定的擴展名將文件重寫到特定的目錄
- 7. 移動具有特定文件名和擴展名的文件
- 8. 使用PowerShell將具有特定擴展名的所有文件從多個子目錄移動到相同的子目錄結構中
- 9. 將文件組移動到子目錄
- 10. 將文件移動到子目錄
- 11. 將文件移動到同一目錄中具有舊擴展名的文件
- 12. 停止擴展子文件夾目錄
- 13. CMake:如何僅將特定文件擴展名從一個目錄複製到另一個目錄
- 14. 遞歸從子目錄將文件移動到文件夾中的父目錄
- 15. 如何限制搜索的文件只有特定的擴展
- 16. Chrome擴展:嵌套的文件夾
- 17. 檢查具有特定擴展名的文件的目錄
- 18. 如何將wordpress從根目錄移動到子目錄?
- 19. django從django.po擴展特定郵件的javascript翻譯目錄
- 20. 用特定的擴展名移動文件的VBScript
- 21. Powershell基於文件名將文件從目錄移動到子目錄
- 22. 如何在一個目錄及其子目錄中除特定擴展名的所有文件外?
- 23. 移動嵌套文件根目錄中的DOS
- 24. 替換特定目錄內的文件擴展名
- 25. 將文件從目錄移動到子目錄,除了一個目錄
- 26. 如何將文件從子文件夾移動到其父目錄(unix,終端)
- 27. 只移動目錄中的文件
- 28. 如何將文件上傳到特定的子目錄
- 29. 如何將基於名稱的文件移動到python中的特定目錄?
- 30. 如何從特定目錄中獲取具有特定擴展名的所有文件的列表?
這也適用於zsh的。事實上,它已經因爲我記得(像過去十年?),在默認配置下只要我可以告訴工作。 – 2012-07-10 17:05:45