这个问题让我很困惑——我实际上是想让 Thunar 自定义操作将选定的文件复制到同一目录中,并在扩展名前添加一个数字,例如
cp file.ext file_1.ext
一些命令似乎会自动执行此操作mogrify -format
(除非扩展名明显发生变化)。
例如,我想复制一个图像文件,以便我可以mogrify -resize
复制(它将被覆盖)。
答案1
在 bash 中执行此操作的常见方法是参数扩展。如果file
变量保存文件名,请执行以下操作:
name=${file%.*}
extension=${file##*.}
i=1
new_file="${name}_${i}.${extension}
cp "$file" "$new_file"
要在脚本中使用它(duplicate.sh
比如说),请执行以下操作:
#!/bin/bash
name=${1%.*}
extension=${1##*.}
infix="${2:-_1}"
cp -v "$1" "${name}${infix}.${extension}"
然后这样调用它:
duplicate.sh FILE INFIX
答案2
这只是@Thor 答案的一个稍微简短的版本:
name=${file%.*}
extension=${file##*.}
cp "$name"{,_1}."$extension"