指定されたオブジェクトを除くリポジトリ内のすべてのオブジェクトを削除する

指定されたオブジェクトを除くリポジトリ内のすべてのオブジェクトを削除する

リポジトリ全体を複製せずに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。これが!(...)構文を提供することです。必要に応じて、bashを使用して開くことができるように、まずshebangを変更する必要があります。

#! /bin/bash

次に、追加してextglobを開きます。

shopt -s extglob

行の前のどこか

関連情報