复制名称中带有删除后缀的文件

复制名称中带有删除后缀的文件

如何使用尽可能小的命令将末尾带有某些后缀的文件复制到同一目录中:

示例包含包含文件的目录:

  • 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。

相关内容