我必须从文件夹中获取图片(其中包含自动更新的子文件夹)及其扩展名。
必须将这些文件复制到一个文件夹中,基于 PHP 的网站将在其中编辑它们(通过重命名和创建 XML 文件),以便可以下载并集成到 XML 源中。
由于脚本的重命名功能,当我执行复制增益时,所有文件都是重复的,因为脚本已经将原来的重命名了。
我尝试了一些方法,rsync
但我正在寻找更强大的方法,因为我无法复制具有外部“历史记录”的文件。
#!/bin/bash
find '/home/name/picture' -name '*.jpg' | while read FILE ; do rsync --backup --backup-dir=incremental --suffix=.old "$FILE" /var/www/media ; done
wget --spider 'http://myscript.php' ;
#exit 0
PS:作为一点补充,我想在复制后用“空格”替换“。” *.jpeg
。由于扩展名的原因,我的 PHP 脚本在定义带逗号的文件时遇到了一些问题。我在想一个带有函数的命令find
——就像我以前做的那样sed
?这是个好主意吗?
答案1
您可以使用以下内容:
#!/bin/ksh
DEST_DIR=/destination
HIST_DIR=/images_bck
SOURCE_DIR=/images
find ${SOURCE_DIR} -name "*.jpg" >${HIST_DIR}/tmp.file
exec 3<${HIST_DIR}/tmp.file
while read file <&3;do
file_name=$(basename "${file}")
if [ ! -f "${HIST_DIR}/${file_name}.old" ];then
cp -p "${file}" "${HIST_DIR}/${file_name}.old"
cp "${file}" "${DEST_DIR}"
fi
done
exec 3<&-
[ -f ${HIST_DIR}/tmp.file ] && rm -f ${HIST_DIR}/tmp.file
对于新用户;
安装 ksh
这是一个 kornshell,在更改 DEST_DIR , HIST_DIR , SOURCE_DIR 之后执行
ksh -v ./MySuperScript.ksh