根据文件列表使用 ZSH 查找命令

根据文件列表使用 ZSH 查找命令

我以前习惯使用 BASH,但最近我发现了 ZSH,不得不说它运行良好。不过,下面的 find 指令让我有点困惑。

假设我们有 3 个 webp 文件和一个 listing.txt,其中有 2 行 1.* 和 3.*,因为我想将它们的扩展名从 .webp 重命名为 .webp.new。

以下是使用 BASH 的结果

arnaud@L340:~/Downloads/Test$ ls
1.webp  2.webp  3.webp  listing.txt
arnaud@L340:~/Downloads/Test$ cat listing.txt 
1.*
3.*
arnaud@L340:~/Downloads/Test$ find $(</home/arnaud/Downloads/Test/listing.txt) -name "*.webp" -exec sh -c 'mv "$1" "${1%.webp}.webp.new"' _ {} \; 
arnaud@L340:~/Downloads/Test$ ls
1.webp.new  2.webp  3.webp.new  listing.txt
arnaud@L340:~/Downloads/Test$ 

=> 2 个文件 1.* 和 3.* 具有新的扩展名。

使用 ZSH 时,我收到以下错误:

╭─ ~/Downloads/Test ▓▒░                                                        ░▒▓ ✔  5m 57s  arnaud@L340 
╰─ find $(</home/arnaud/Downloads/Test/listing.txt) -name "*.webp" -exec sh -c 'mv "$1" "${1%.webp}.webp.new"' _ {} \; 
find: ‘1.*’: No such file or directory
find: ‘3.*’: No such file or directory
╭─ ~/Downloads/Test ▓▒░  

您知道为什么它不适用于 ZSH 吗?谢谢!

相关内容