![复制名称中带有删除后缀的文件](https://linux22.com/image/27881/%E5%A4%8D%E5%88%B6%E5%90%8D%E7%A7%B0%E4%B8%AD%E5%B8%A6%E6%9C%89%E5%88%A0%E9%99%A4%E5%90%8E%E7%BC%80%E7%9A%84%E6%96%87%E4%BB%B6.png)
如何使用尽可能小的命令将末尾带有某些后缀的文件复制到同一目录中:
示例包含包含文件的目录:
- cassandra.yml.example
- 数据库.yml.示例
- facebook.yml.example
- 缓存.yml.示例
- 系统.yml.示例
需要复制它们并具有如下名称:
- 卡桑德拉.yml
- 数据库.yml
- facebook.yml
- 缓存.yml
- 系统.yml
答案1
for x in /path/to/*.example
do
cp "$x" "${x%%.example}"
done
将不将其复制.example
到与源文件相同的文件夹中。
答案2
需要find
一个支持字符串操作和进程替换的 shell(即Bash
任何兼容的):
while read file
do cp $file ${file%%.ext}
done < <(find -type f)
如果要复制所有不带扩展名的文件,可以使用 glob (*) 代替 ext。