for f in *; do
prefix="${f%.*}"
suffix="${f:${#prefix}}"
cp "$f" "${prefix}_copy${suffix}"
done
Run Code Online (Sandbox Code Playgroud)
这通过修剪匹配".*"的后缀来查找文件名的前缀.请注意,如果文件名没有扩展名,则这将是整个文件名; 如果它有多个句点,它只会删除最后一个句点(例如,对于一个名为"this.that.etc.png"的文件,它将被修剪为"this.that.etc").然后通过根据前缀(${#prefix})的长度切片文件名来找到后缀; 无论是否删除了任何内容,这都可以正常工作.
警告:这将处理任何带有句点的文件名具有扩展名.例如,"file_v1.0"将被复制到"file_v1_copy.0".
注意:如果您愿意,可以跳过定义$ suffix,并${f:${#prefix}}在复制命令中使用内联,但我认为这更清楚.
| 归档时间: |
|
| 查看次数: |
1761 次 |
| 最近记录: |