And*_*rew 34 shell bash cp wildcards
我想将具有多个扩展名的文件复制到一个目标目录。
例如,我可以使用以下命令将工作目录中的所有.txt文件复制到名为 的目录destination:
cp -v *.txt destination/
Run Code Online (Sandbox Code Playgroud)
我可以使用以下内容将工作目录中的所有.png目录复制到destination:
cp -v *.png destination/
Run Code Online (Sandbox Code Playgroud)
但是将它们作为单独的命令键入很耗时(即使使用命令历史记录)。那么,有什么方法可以告诉我cp将带有模式*.txt 或模式的文件复制*.png到destination? 理想情况下,我希望能够指定两个以上的模式——例如,指示cp将所有*.txt 或 *.png 或 *.jpg文件复制到destination。
我确信所有这些都可以使用 shell 脚本实现——bash例如,我正在使用——但是有没有什么方法可以更简单地完成它,仅从控制台?我可以以某种方式使用大括号扩展来做到这一点吗?
我知道这是可能的所有文件复制除了匹配某些特定模式的工作目录,但由于我的工作目录含有更多的文件扩展名,我不希望比我复制这样做,那将是一个痛苦。
你对此有什么想法吗?
Tim*_*tin 79
支撑扩展将完成工作。 man bash并搜索Brace Expansion.
cp *.{txt,jpg,png} destination/
Run Code Online (Sandbox Code Playgroud)
编辑:
根据 OP 的要求,上面的命令缺少详细选项:
cp -v *.{txt,jpg,png} destination/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39512 次 |
| 最近记录: |