如何解决Linux通过名称掩码将文件从dir移动到dir
我正在尝试将名称以SML
开头的所有文件从目录移动到另一个目录。
尝试过
find /var/.../Images/ -name SML\* mv /var/.../Images/Small
但不起作用
解决方法
尝试find /var/.../Images/ -name SML\* -exec mv {} /var/.../Images/Small/ \;
我想你想要这样的东西:
dir=/path/to/your/Images
mkdir -p "$dir/Small"
find "$dir" -name "SML*" -not -wholename "$dir/Small/*" -exec mv {} "$dir/Small/" \;
- 由于将文件移动到的目录是您所搜索的目录的子目录,因此需要排除已经移动到那里的文件。所以我加了
-not -wholename "$dir/Small/*"
- 要对找到的每个文件执行命令,您需要
-exec ...
。替代方法是将查找结果通过管道传递到while read
循环。 - 使用
-exec
时,{}
可以引用找到的名称。
有关更多信息,请参见man find
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。