我想调用脚本./archive-it.sh与文件夹名称(如project1)而没有尾随/并期望将其归档,我相信它非常简单,因为我是bash脚本的新手我被卡住了。有人可以帮忙。
但目前我在这里收到错误
$target=$(echo "$1"-`date +%m-%d-%Y-%H_%M`)
这是脚本
!/bin/bash
######### archive-it.sh ############
echo "Argument $1";
$target=$(echo "$1"-`date +%m-%d-%Y-%H_%M`)
tar -czvf $target.tar.gz $1
echo "####################################"
echo "ARCHIVE Successfully done at :"
echo "${target}" ;
还建议我排除.git文件夹是否合适,因为我每天只进行备份。
答案 0 :(得分:3)
要分配变量,它是target="something"
,然后使用$target
如果路径包含空格
,还要在$ 1附近添加引号echo "Argument $1";
if [[ ! -d "${1}" ]]; then
echo "Folder '$1' doesn't exists"
exit 1
fi
#filter git files if you want
nogitfiles="$(find "${1}" -name * | grep -v .git)"
target="$(date +"$1-%m-%d-%Y-%H_%M")"
tar -czvf "${target}.tar.gz" ${nogitfiles}
echo "####################################"
echo "ARCHIVE Successfully done at :"
echo "${target}" ;
答案 1 :(得分:1)
根本不需要回声:
target="$1$(date +%m-%d-%Y-%H_%M)"
答案 2 :(得分:0)
除了分配到target
,而不是$target
,而不是$1
和date
的输出,您可以在$1
中添加date
target=$(date +"$1-%m-%d-%Y-%H_%M")
的格式字符串:
{{1}}