https://github.com/mosregdata/ops-file
Работа с файлами в Unix-системах
https://github.com/mosregdata/ops-file
devops devops-tools files go golang linux mosregdata
Last synced: about 2 months ago
JSON representation
Работа с файлами в Unix-системах
- Host: GitHub
- URL: https://github.com/mosregdata/ops-file
- Owner: mosregdata
- License: mit
- Created: 2025-05-19T07:59:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-19T08:01:51.000Z (about 1 year ago)
- Last Synced: 2025-05-19T08:36:17.019Z (about 1 year ago)
- Topics: devops, devops-tools, files, go, golang, linux, mosregdata
- Language: Go
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpsFile
Модуль предназначен для работы с файлами в Unix-системах.
Он предоставляет базовые функции работы с файлами: создание пустого файла, создание файла с содержимым, дозапись, удаление, очистка, переименование, копирование, перемещение, получение списка файлов, проверка наличия, смена прав.
## Возможности
- Создание пустого файла (`CreateEmptyFile`).
- Создание файла с указанным содержимым (`CreateFileWithContent`).
- Добавление содержимого в конец файла (`AppendToFile`).
- Очистка содержимого файла (`ClearFile`).
- Удаление файла (`DeleteFile`).
- Переименование файла (`RenameFile`).
- Перемещение файла (`MoveFile`).
- Копирование файла (`CopyFile`).
- Получение списка файлов в директории (без рекурсии) (`ListFiles`).
- Получение рекурсивного списка всех файлов (`ListFilesRecursive`).
- Получение времени последней модификации файла (`GetFileModTime`).
- Проверка существования файла (`FileExists`).
- Установка прав доступа к файлу (`SetFilePermissions`).
- Установка владельца и группы для файла (`SetFileOwnerGroup`).
## Требования
- Go 1.20 или выше.
- Unix-подобная ОС (Linux, macOS и т.д.).
## Установка
Склонируйте репозиторий или добавьте модуль в ваш проект:
```shell
go get github.com/mosregdata/ops-file
```
## Использование
Пример использования модуля:
```go
package main
import (
"fmt"
opsfile "github.com/mosregdata/ops-file"
)
func main() {
// Создать пустой файл
err := opsfile.CreateEmptyFile("/tmp/test.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Создать файл с содержимым
err = opsfile.CreateFileWithContent("/tmp/test2.txt", "Hello, World!")
if err != nil {
fmt.Println("Error:", err)
}
// Добавить содержимое
err = opsfile.AppendToFile("/tmp/test2.txt", "\nNew line")
if err != nil {
fmt.Println("Error:", err)
}
// Очистить файл
err = opsfile.ClearFile("/tmp/test2.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Переименовать файл
err = opsfile.RenameFile("/tmp/test.txt", "/tmp/test_renamed.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Переместить файл
err = opsfile.MoveFile("/tmp/test_renamed.txt", "/tmp/newdir/test_moved.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Скопировать файл
err = opsfile.CopyFile("/tmp/test2.txt", "/tmp/test_copy.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Удалить файл
err = opsfile.DeleteFile("/tmp/test2.txt")
if err != nil {
fmt.Println("Error:", err)
}
// Получить список файлов
files, err := opsfile.ListFiles("/tmp")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Files:", files)
// Рекурсивный список
recFiles, err := opsfile.ListFilesRecursive("/tmp")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Recursive files:", recFiles)
// Информация о файле
info, err := opsfile.GetFileInfo("/tmp/test_copy.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("File info: %+v\n", info)
// Время модификации
modTime, err := opsfile.GetFileModTime("/tmp/test_copy.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Mod time:", modTime)
// Проверка существования
exists, err := opsfile.FileExists("/tmp/test_copy.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File exists:", exists)
// Установить права
err = opsfile.SetFilePermissions("/tmp/test_copy.txt", 0644)
if err != nil {
fmt.Println("Error:", err)
return
}
// Установить владельца и группу
err = opsfile.SetFileOwnerGroup("/tmp/test_copy.txt", 1000, 1000)
if err != nil {
fmt.Println("Error:", err)
return
}
}
```