在一个目录中,我有许多子目录,每个子目录都有许多不同类型的文件.我想从每个子目录中提取具有特定扩展名的所有文件,并将其放在不同的文件夹中.是否可以编写一个bash脚本来执行此操作?如果是这样的话?
$ find <directory> -name '*.foo' -exec mv '{}' <other_directory> \;
Run Code Online (Sandbox Code Playgroud)
find 通过目录结构进行递归搜索,并对找到的与搜索条件匹配的任何文件执行给定操作.
在这种情况下,-name '*.foo'是搜索条件,并-exec mv '{}' <other_directory> \;告诉find它执行 mv它找到的任何文件,其中'{}'转换为文件名并\;表示命令的结束.
如果你有bash v4并且有
shopt -s globstar
Run Code Online (Sandbox Code Playgroud)
在.profile中,您可以使用:
mv ./sourcedir/**/*.ext ./targetdir
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5265 次 |
| 最近记录: |