MCPcopy
hub / github.com/ayoisaiah/f2

github.com/ayoisaiah/f2 @v2.2.2 sqlite

repository ↗ · DeepWiki ↗ · release v2.2.2 ↗
275 symbols 922 edges 60 files 116 documented · 42%
README

Read this in other languages: Deutsch | Español | Français | Português | Русский | 繁體中文

f2

Github Actions made-with-Go GoReportCard Go.mod version LICENCE Latest release

F2 - Command-Line Batch Renaming

F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!

What does F2 do differently?

Compared to other renaming tools, F2 offers several key advantages:

  • Dry Run by Default: It defaults to a dry run so that you can review the renaming changes before proceeding.

  • Variable Support: F2 allows you to use file attributes, such as EXIF data for images or ID3 tags for audio files, to give you maximum flexibility in renaming.

  • Comprehensive Options: Whether it's simple string replacements or complex regular expressions, F2 provides a full range of renaming capabilities.

  • Safety First: It prioritizes accuracy by ensuring every renaming operation is conflict-free and error-proof through rigorous checks.

  • Conflict Resolution: Each renaming operation is validated before execution and detected conflicts can be automatically resolved.

  • High Performance: F2 is extremely fast and efficient, even when renaming thousands of files at once.

  • Undo Functionality: Any renaming operation can be easily undone to allow the easy correction of mistakes.

  • Extensive Documentation: F2 is well-documented with clear, practical examples to help you make the most of its features without confusion.

⚡ Installation

If you're a Go developer, F2 can be installed with go install (requires v1.23 or later):

go install github.com/ayoisaiah/f2/v2/cmd/f2@latest

Other installation methods are documented here or check out the releases page to download a pre-compiled binary for your operating system.

📃 Quick links

💻 Screenshots

F2 can utilise Exif attributes to organise image files

🤝 Contribute

Bug reports and feature requests are much welcome! Please open an issue before creating a pull request.

⚖ Licence

Created by Ayooluwa Isaiah and released under the terms of the MIT Licence.

Core symbols most depended-on inside this repo

T
called by 84
internal/localize/localize.go
String
called by 73
internal/config/sort.go
RegexReplace
called by 14
replace/variables/variables.go
StripExtension
called by 13
internal/pathutil/pathutil.go
newStatus
called by 12
internal/status/status.go
transformString
called by 11
replace/variables/variables.go
CompareGoldenFile
called by 9
internal/testutil/testutil.go
AutoFixTarget
called by 8
internal/file/file.go

Shape

Function 208
Struct 36
Method 27
TypeAlias 4

Languages

Go100%

Modules by API surface

replace/variables/variables.go33 symbols
replace/variables/variable_types.go25 symbols
internal/config/config.go17 symbols
validate/validate.go16 symbols
find/find.go13 symbols
replace/variables/extract.go12 symbols
internal/file/file.go12 symbols
internal/testutil/testutil.go11 symbols
report/report.go10 symbols
report/report_test/report_test.go8 symbols
internal/sortfiles/sortfiles_test/sortfiles_test.go8 symbols
internal/sortfiles/sortfiles.go8 symbols

Dependencies from manifests, versioned

atomicgo.dev/cursorv0.2.0 · 1×
github.com/OneOfOne/xxhashv1.2.2 · 1×
github.com/araddon/dateparsev0.0.0-2021042916200 · 1×
github.com/aymanbagabas/go-osc52/v2v2.0.1 · 1×
github.com/barasher/go-exiftoolv1.10.0 · 1×
github.com/cespare/xxhashv1.1.0 · 1×
github.com/charmbracelet/colorprofilev0.2.3-0.20250311203 · 1×

For agents

$ claude mcp add f2 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact