删除repo中除指定对象之外的所有对象

删除repo中除指定对象之外的所有对象

我正在尝试编写一个程序,该程序将从 github 获取一个对象,而不克隆整个存储库。最后一行不起作用,给了我一个Syntax error: "(" unexpected.它应该删除除此之外的所有文件/目录。

#!/bin/sh
object=$2 #sets item not to remove as second argument
address=$1 #sets github address (github.com/user/repo)
git clone $1 #clones it
location="${address##*/}" #gets part after last backslash
cd $location #cd's into it

#Syntax error: "(" unexpected
rm -rf !("$object") 

答案1

默认情况下不启用extglob 语法bash,这就是为您提供!(...)语法的内容。如果需要,您必须首先将 shebang 更改为使用 bash 来打开它

#! /bin/bash

然后通过添加打开 extglob

shopt -s extglob

该行之前的某处

相关内容