声明:我对Bash脚本编程(以及一般的Linux)非常陌生,所以请原谅我一个愚蠢的问题。在Bash中处理目录名称中的空格
我的一位朋友给了我一个脚本,将某些文件备份到Dropbox上。代码如下:
#!/bin/sh
DATE=`date +%Y-%m-%d`
tarname='backup-'$DATE'.tar.gz'
cd ~/
directoriesToBack='.bashrc Desktop/School/ Desktop/Research\ Project'
tar -X ~/Desktop/My\ Programs/scripts/crons/exclude.txt -zcvf $tarname $directoriesToBack
mv $tarname ~/Dropbox
变量directoriesToBack
显然包含要复制的目录。 Exclude.txt是不需要备份的文件的文本文件。
如果我尝试运行此脚本,由于Desktop/Research Project
,我得到一个错误:我的电脑改为寻找目录Desktop/Research
。我试图用双引号而不是单引号,并用普通空格替换\
,但这些尝试不起作用。有谁知道我可以如何使用其名称中的空格来备份一个目录?
不幸的是你的代码产生了错误'Syntax error:“(”unexpected' – 2015-01-20 19:54:59
啊,真的,'/ bin/sh'不能做数组,需要''bash'或者其他shell。修复 – 2015-01-20 19:56:39
现在代码有效, – 2015-01-20 19:58:11