Vic*_*Hee 3 unix macos bash scripting file-rename
我正在对大量带有大量 jpg 的目录进行重大重组,其中一些与其他目录中的文件具有相同的名称。我想移动/文件复制到备用目录,并具有自动的bash如果该名称在目录中的另一个文件重命名匹配他们(重命名IMG_238.jpg到IMG_238_COPY1.jpg,IMG_238_COPY2.jpg等),而不是覆盖现有文件。
我已经设置了一个脚本,它接受 jpeg 并将它们移动到基于 exif 数据的新目录。移动一个 jpg 的脚本的最后一行是:mv -n "$JPEGFILE" "$DIRNAME"
我正在使用 -n 选项,因为我不想覆盖文件,但现在我必须手动对没有移动/复制的文件进行排序。我的 GUI 会自动执行此操作...在 bash 中是否有相对简单的方法来执行此操作?
(以防万一,我在 Mac OSX Lion 中使用 bash 3.2)。
这应该这样做
# strip path, if any
fname="${JPEGFILE##*/}"
[ -f "$DIRNAME/$fname" ] && {
n=1
while [ -f "$DIRNAME/${fname%.*}_COPY${n}.${fname##*.}" ] ; do
let n+=1
done
mv "$JPEGFILE" "$DIRNAME/${fname%.*}_COPY${n}.${fname##*.}"
} || mv "$JPEGFILE" "$DIRNAME"
Run Code Online (Sandbox Code Playgroud)
编辑:改进。
| 归档时间: |
|
| 查看次数: |
3285 次 |
| 最近记录: |