Linux mv 命令用于移动具有不同扩展名的多个文件

Linux mv 命令用于移动具有不同扩展名的多个文件

我想知道是否可以使用 bash 将mv具有不同扩展名的多个文件放入一个目录中,例如
mv 1.png 2.jpg dir/

except 匹配多个文件

答案1

使用全局变量! glob 是一种扩展到多个文件名的模式。它也非常好用这里解释

例如*匹配任意长度的任意字符串,你可以将所有 JPG 和 PNG 文件移动到某个位置:

mv *.jpg *.png dir

使用extglobBash 中的选项,您还可以执行以下操作:

shopt -s extglob
mv *(*.jpg|*.png) dir

答案2

最简单的方法是使用括号扩展和通配符的组合

mv -iv -- *.{png,jpg} dir/

扩展为

mv -iv -- *.png *.jpg dir/

扩展为(所有文件 - 包括目录/符号 - 以.png或结尾.jpg

mv -iv -- 1.png 2.jpg ... dir/

注意:-iv --包括安全/冗长

-i, --interactive
       prompt before overwrite
-v, --verbose
       explain what is being done
[GETOPT] The special argument "--" forces an end of option-scanning 
         regardless of the scanning mode. 
         (Meaning everything after it gets treated as an argument)

答案3

是的,它确实。

$ tree
.
├── a.png
├── b.jpg
└── dir

1 directory, 2 files
$ mv a.png b.jpg dir
$ tree
.
└── dir
    ├── a.png
    └── b.jpg

1 directory, 2 files
$ 

mv 不关心文件扩展名,它只知道原始文件和您请求的目标目录。

相关内容