我想寫一個備份腳本,需要一個目錄和目錄/文件名作爲腳本的參數。問題在於策劃備份的目標目錄。爲了安全起見,我正在將文件移動到MacOS ~/.Trash/
。問題是我想支持在目標目錄的文件名中有空格,但在mv
中轉義路徑可以防止shell的擴展爲*
。Bash:移動文件與正則表達式,匹配腳本的麻煩和固定文本的模式
有問題的腳本:
# 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/
我如何能匹配所有與此知道,任意前綴和固定的擴展名的文件?
我試過了,沒有問題。你能用'set -x'運行腳本來查看該行發生了什麼。我會懷疑你有太多的文件,可能會超過1024個字符的命令行緩衝區。 – unxnut