shell - 重命名文件,如果它是目录中唯一具有扩展名的文件
问题描述
这可行,但是我只想在它是.jpg
给定目录的唯一目录时才这样做,下面的目录只会将它们全部重命名为folder.jpg
,覆盖其他文件:
find . -type f -name '*.jpg' -execdir mv {} 'folder.jpg' \;
解决方案
我想find
不能按匹配数过滤,但你总是可以执行一个 shell 来为你做更详细的检查:
find . -type f -name '*.jpg' -execdir sh -c '[ $# = 1 ] && mv "$1" folder.jpg' sh {} +
推荐阅读
- python - Python(递归问题)::我什么时候需要在递归函数中使用它之前声明一个列表?
- dom - 使用 PureScript 从 div 中清除所有子元素
- javascript - 访问框架集框架之间的选择选项标签时出现 IE 11 权限问题
- django - 带有 websockets 的 Django - Uvicorn + Nginx
- r - 使用 model.matrix() 创建虚拟变量
- grpc - ServerAsyncReaderWriter.Write 不是执行 tcp_write 的异步
- javascript - Mocha:设置超时使测试串行
- python - 数字根和持久性功能
- javascript - 基于父组件 props 为子组件添加额外样式
- c# - 如何使用.net core c#保存pfx文件