Goでrenameコマンドつくってみた🌱
gitbashにて自作コマンドの追加をしてみました。
初心者🌱の自分が、自分のためにメモとして書いているのでご容赦ください。
主に使用したパッケージ
os
path/filepath
flag
今回のリポジトリ
PATHの通し方について
cd
コマンドみたいな感じで自分のコマンドを使ってみたかった。
まあビルドしたexeファイルにパスを通すだけだったんですけどパスの通し方について勘違いしていたので参考文献を自分のために置いておきます。
面白かったところ
前回の記事で今回使ったos
、filepath
以外のところを書こうと思います。
flag
について
Usage.go
var option0 = flag.String("o","default","Option Description")
//引数1:オプションの名前 -o
//引数2:オプションの初期値 "default"
//引数3:オプションの説明 -hで出力される
var option1 = flag.Int("i",0,"int flag")
flag.Parse()//flagが定義し終わった後に宣言する必要がある
fmt.Println(*option0)
fmt.Println(*i)
すでに定義している変数にオプションの結果を代入するものもあるのでぜひ公式ドキュメントを読んでください。
出力結果
$ go run Usage.go
default
0
$ go run Usage.go -o hoge
hoge
0
$ go run Usage.go -i 1
default
1
os.Rename()
について
func Rename(oldpath, newpath string) error
ということで、新しいpath名に変更できる関数です。今回はこれをディレクトリ内のファイルにかけている感じになりました。
それぞれのファイルにかける方法は、このあたりを読むとわかるかも。
前回の記事を読んでくれても嬉しいです。
感想
コマンドに引数を与えるというところでだいぶ時間を使ってしまった。
前回つかったときは、os.Args
だったが、今回はflag.Args
を使ってみた。違いが理解できた気がする。
ファイルのリネームは便利だが、使用する場所を間違えると怖いので使ってくれる場合は慎重に使ってほしい。
参考文献