mv public_html/*.??[g,f] public_html/images/
那行得通吗?这样所有扩展名为 .jpg、.png 和 .gif 的照片/图像都将被移动。
(我没有安装Linux,我使用了在线终端。不幸的是,他们的文件中没有任何照片)
答案1
[g,f]
匹配g
, ,
(逗号)或f
.您[fg]
只需要f
或g
。
现在,从技术上来说。
mv public_html/*.??[gf] public_html/images/
还会移动一个名为foo.x.f
as 的文件,?
该文件也与.
.
另外,如果没有与该模式匹配的文件,那么某些 shellbash
可以移动一个名为字面意思的文件*.??[gf]
(Bourne shell 引入的错误,再次修复zsh
bash
,您可以使用 )来解决这个问题shopt -s failglob
。
因此,这里对于以f
或结尾的 3 个字符扩展名g
,这会更多,但仍然有最后一个警告([^.]
而不是[!.]
使用一些 shell):
mv public_html/*.[!.][!.][fg] public_html/images/
3人份字母:
mv public_html/*.[[:alpha:]][[:alpha:]][fg] public_html/images/
对于 jpg、png 或 gif,使用zsh
shell:
mv public_html/*.(jpg|gif|png) public_html/images/
或者使用 ksh 或zsh -o kshglob
或bash -O extglob
:
mv public_html/*.@(jpg|gif|png) public_html/images/
答案2
假设bash
或者朋友,你可以使用
mv public_html/*.??[gf] public_html/images/
或者,更准确地说是匹配
mv public_html/*.{jpg,png,gif} public_html/images/