#!/bin/bash
cd /var/www/html/tpd
cp -pr !(edc|dti|swb|audio|blog|buy|dpt|dpt.git|dpt-staging-server|dti_old|images|images2|images_linkshare|smarty-3.1.30|swb.com|swb.com.temp|talent|template_c|video|yout|yout-admin|All_About_Your_Canine_Friend.pdf|Canine_Cuisine.pdf|definitiveguide.pdf|GroomingYourDogAtHome-FreeReport.pdf|HowToStopYourPuppyOrOlderDogFromBiting.pdf|Network Merchants API.pdf|SuperDogsandPuppies.pdf|TopDogs.pdf|UltimateBreedGuide.pdf|10CommonProblemsofAdultDogs.pdf|10CommonProblemsofPuppies.pdf|45commonlyaskedquestionsondoggrooming.pdf|g.tar.gz|h.tar.gz|dti_back.tar.gz|Canine_Cuisine.zip|deluxe_version.zip|h.zip|StyleXPInstallMale.zip|UltimateBreedGuide.zip|videotranscripts.zip|101ways.zip) weeklyBackup
tar -cvf weeklyBackup.tar.gz weeklyBackup
rm -rf weeklyBackup
我只为每个选定的文件进行每周备份,这是我正在使用的脚本。它在手动运行时工作正常,但当我输入这是一个crontab时,它返回一个错误行3:语法错误接近意外令牌`('
答案 0 :(得分:1)
语法!(name1|name2|name3)
是" extglob"。这是bash的可选扩展,默认情况下未启用。
要启用此语法,您需要运行(作为脚本中的前一行):
shopt -s extglob
据推测,你的dotfiles已经为交互式shell做了这个,这就是为什么语法适合你开箱即用的原因。 (另外,如果使用sh scriptname
从cron调用脚本,请确保使用bash scriptname
,或者修改代码以尊重shebang。