下面是我正在处理的媒体备份脚本的一个片段。从终端命令行调用时,脚本会按预期运行。但是,将带有Platypus的脚本打包到App后,会创建目标目录,但For循环不会运行,也不会将介质复制到目标文件夹。有人知道我做错了什么吗??
#!/bin/sh
DEST_PATH=/Volumes/MediaBackup
mkdir -p $DEST_PATH
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $(find "$PWD" -iname "*.jpg")
do
FILENAME="$(basename $i)"
MD5="$(md5 -q $i)"
cp "$i" "$DEST_PATH/$MD5-$FILENAME"
done
IFS=$SAVEIFS温文尔雅的先生和女士们,谢谢!下面是使用您的注释的工作脚本。感谢您的快速转身。几天前就该这么做了。
#!/bin/bash
DEST_PATH=/Volumes/PrivateMain/Media
mkdir -p $DEST_PATH
SAVEIFS=$IFS
IFS=$(printf "\n\b")
for i in $(find "/Users" -iname "*.jpg")
do
FILENAME="$(basename $i)"
MD5="$(md5 -q $i)"
cp "$i" "$DEST_PATH/$MD5-$FILENAME"
done
IFS=$SAVEIFS发布于 2017-02-11 04:55:05
#!/bin/bash
DEST_PATH=/Volumes/PrivateMain/Media
mkdir -p $DEST_PATH
SAVEIFS=$IFS
IFS=$(printf "\n\b")
for i in $(find "/Users" -iname "*.jpg")
do
FILENAME="$(basename $i)"
MD5="$(md5 -q $i)"
cp "$i" "$DEST_PATH/$MD5-$FILENAME"
done
IFS=$SAVEIFS感谢所有帮助我们的人!但是,由于可能会覆盖2个相同名称的文件,我已将脚本编辑为如下所示。
SAVEIFS=$IFS
IFS=$(printf "\n\b")
COUNTER=0;
for i in $(find "/Users" -iname "*.jpg");
do
BASE=`expr "$i" : '.*/\(.*\)\..*'`;
EXT=`expr "$i" : '.*/.*\.\(.*\)'`;
COUNTER=`expr $COUNTER + 1` ;
cp "$i" ""${tardir}"/"$x"/JPG/"$BASE"_"$COUNTER"."$EXT""
done
IFS=$SAVEIFS https://stackoverflow.com/questions/42165485
复制相似问题