移动文件,更改权限并重命名,保持相同的extesion

时间:2016-10-13 14:48:41

标签: permissions cron zsh rsync mv

在Fedora 24工作站上使用zsh 5.2。

我希望以编程方式能够:

  • 移动图片文件(可以有jpg / jpeg / png / JPG / PNG扩展名) 从/ tmp / folder1到〜/ Pictures
  • 此文件将包含相同的几个初始字符--- prefix111.jpg或prefix222.png等。
  • 重命名文件,使samefilename.JPG成为20161013.jpg
  • 20161013是yyyymmdd格式的今天日期
  • 请注意,扩展名变为小写字母
  • JPEG或jpeg变为jpg
  • 将移动文件的权限更改为644

一气呵成。

如果有多个前缀*文件,该命令应该只是静默失败。

我最初希望在命令提示符下执行此操作,并选择稍后添加cron作业。我的意思是,相同的zsh命令/脚本是否可以在cron中工作?

我确信,这是可行的。但是,凭借我有限的shell知识,只能实现:

mv /tmp/folder1/prefix-*.JPG ~/Pictures/$(date +'%Y%m%d').jpg

我的方法有很多问题。它不处理大写,不处理不同的扩展,也不解决权限问题。

1 个答案:

答案 0 :(得分:1)

这个怎么样:

#!/bin/sh
FILES="/tmp/folder1/prefix*.jpg /tmp/folder1/prefix*.jpeg /tmp/folder1/prefix*.png h/tmp/folder1/prefix*.JPG /tmp/folder1/prefix*.PNG"
if [ $(ls $FILES | wc -l ) -gt 1 ]; then
    exit 1
fi
if [ $(ls $FILES | grep -i '\.png$') ]; then
  SUFF=png
else
  SUFF=jpg
fi
DEST=$HOME/Pictures/$(date +'%Y%m%d').$SUFF
mv $FILES $DEST
chmod 644 $DEST