package main
import (
"fmt"
"io"
"io/fs"
"os"
"path"
"path/filepath"
)
func main() {
if len(os.Args) == 1 {
panic("Enter a file name")
}
src := os.Args[1]
var pathList []string
err := filepath.Walk(src, func(path string, info fs.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() && info.Name() == "node_modules" {
return filepath.SkipDir
}
if info.IsDir() {
return nil
}
path = filepath.ToSlash(path)
pathList = append(pathList, path)
return nil
})
if err != nil {
fmt.Printf("filepath.Walk() returned %v\n", err)
panic(err)
}
for index, path := range pathList {
fmt.Println(index+1, "/", len(pathList), ": ", path)
err = customCopy(path)
if err != nil {
panic(err)
}
}
}
func customCopy(src string) error {
dst := "./bak-" + src
dir := path.Dir(dst)
_, err := os.Stat(dir)
if err != nil {
if os.IsNotExist(err) {
err = os.MkdirAll(dir, 0777)
if err != nil {
panic(err)
}
} else {
panic(err)
}
}
source, err := os.Open(src)
if err != nil {
return err
}
defer source.Close()
destination, err := os.Create(dst)
if err != nil {
return err
}
defer destination.Close()
_, err = io.Copy(destination, source)
return err
}
删除文件夹中的node_modules子文件夹
TOC
Recent Posts
Tags
- apache 4
- axios 1
- benchmark 1
- c 1
- canvas 1
- centos 3
- channel 1
- crontab 1
- css 2
- docker 4
- fail2ban 1
- frp 1
- gin 1
- github 1
- go 26
- goaccess 1
- goroutine 1
- http 1
- https 1
- jetbrains 1
- jquery 1
- js 2
- linux 20
- mermaid 1
- mysql 10
- nginx 3
- node 1
- php 43
- prisma 1
- react 8
- server 1
- ssh 2
- tarojs 1
- tcp/ip 1
- token 1
- ubuntu 1
- ufw 1
- unit-test 1
- vmware 1
- vscode 1
- vue 12
- yum 1
- 域名 3
- 安全 2
- 微信 3
- 算法 3