我正在尝试编写一个备份脚本,该脚本将目录和目录/文件名作为脚本的参数。问题是策划备份的目标目录。为安全起见,我目前正在将文件移动到MacOS ~/.Trash/
。问题是我想支持在目标目录的文件名中包含空格,但是在mv
中转义路径会阻止*
的shell扩展。
有问题的剧本:
# Usage: backup-to-dropbox.sh "path/containing/target" "target dir"
cd "$1"
DATE=`date "+%Y%m%dT%H%M%S"`
SOURCE="$2"
mv "~/Dropbox/Backups/$SOURCE*.tgz" ~/.Trash/ ## Problem line here
tar -czf "$SOURCE $DATE.tgz" "$SOURCE/"
mv "$SOURCE $DATE.tgz" ~/Dropbox/Backups/
如何将所有文件与此已知的任意前缀和固定扩展名匹配?
答案 0 :(得分:1)
可以部分引用单词。一定不要引用shell扩展的任何内容。
mv ~/"Dropbox/Backups/$SOURCE"*.tgz ~/.Trash/