Bash:使用与脚本参数和固定文本模式匹配的正则表达式移动文件

时间:2013-12-21 03:51:46

标签: regex bash shell

我正在尝试编写一个备份脚本,该脚本将目录和目录/文件名作为脚本的参数。问题是策划备份的目标目录。为安全起见,我目前正在将文件移动到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/

如何将所有文件与此已知的任意前缀和固定扩展名匹配?

1 个答案:

答案 0 :(得分:1)

可以部分引用单词。一定不要引用shell扩展的任何内容。

mv ~/"Dropbox/Backups/$SOURCE"*.tgz ~/.Trash/