mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
Update agent configurations: change commiter mode to all, rename engineer agent to "Penpot Engineer", and remove obsolete testing agent. Add new read-only planner agent for architecture analysis and planning. Add four new skills: bat-cat (syntax-highlighted cat clone), fd-find (fast file finder), jq-json-processor (JSON processor), and ripgrep (fast text search). Add fd-find and bat packages to devenv Dockerfile. Update .gitignore to exclude opencode package-lock and plans directory. Signed-off-by: Andrey Antukh <niwi@niwi.nz>
195 lines
3.3 KiB
Markdown
195 lines
3.3 KiB
Markdown
---
|
|
name: fd-find
|
|
description: A fast and user-friendly alternative to 'find' - simple syntax, smart defaults, respects gitignore.
|
|
homepage: https://github.com/sharkdp/fd
|
|
metadata: {"clawdbot":{"emoji":"📂","requires":{"bins":["fd"]},"install":[{"id":"brew","kind":"brew","formula":"fd","bins":["fd"],"label":"Install fd (brew)"},{"id":"apt","kind":"apt","package":"fd-find","bins":["fd"],"label":"Install fd (apt)"}]}}
|
|
---
|
|
|
|
# fd - Fast File Finder
|
|
|
|
User-friendly alternative to `find` with smart defaults.
|
|
|
|
## Quick Start
|
|
|
|
### Basic search
|
|
```bash
|
|
# Find files by name
|
|
fd pattern
|
|
|
|
# Find in specific directory
|
|
fd pattern /path/to/dir
|
|
|
|
# Case-insensitive
|
|
fd -i pattern
|
|
```
|
|
|
|
### Common patterns
|
|
```bash
|
|
# Find all Python files
|
|
fd -e py
|
|
|
|
# Find multiple extensions
|
|
fd -e py -e js -e ts
|
|
|
|
# Find directories only
|
|
fd -t d pattern
|
|
|
|
# Find files only
|
|
fd -t f pattern
|
|
|
|
# Find symlinks
|
|
fd -t l
|
|
```
|
|
|
|
## Advanced Usage
|
|
|
|
### Filtering
|
|
```bash
|
|
# Exclude patterns
|
|
fd pattern -E "node_modules" -E "*.min.js"
|
|
|
|
# Include hidden files
|
|
fd -H pattern
|
|
|
|
# Include ignored files (.gitignore)
|
|
fd -I pattern
|
|
|
|
# Search all (hidden + ignored)
|
|
fd -H -I pattern
|
|
|
|
# Maximum depth
|
|
fd pattern -d 3
|
|
```
|
|
|
|
### Execution
|
|
```bash
|
|
# Execute command on results
|
|
fd -e jpg -x convert {} {.}.png
|
|
|
|
# Parallel execution
|
|
fd -e md -x wc -l
|
|
|
|
# Use with xargs
|
|
fd -e log -0 | xargs -0 rm
|
|
```
|
|
|
|
### Regex patterns
|
|
```bash
|
|
# Full regex search
|
|
fd '^test.*\.js$'
|
|
|
|
# Match full path
|
|
fd --full-path 'src/.*/test'
|
|
|
|
# Glob pattern
|
|
fd -g "*.{js,ts}"
|
|
```
|
|
|
|
## Time-based filtering
|
|
```bash
|
|
# Modified within last day
|
|
fd --changed-within 1d
|
|
|
|
# Modified before specific date
|
|
fd --changed-before 2024-01-01
|
|
|
|
# Created recently
|
|
fd --changed-within 1h
|
|
```
|
|
|
|
## Size filtering
|
|
```bash
|
|
# Files larger than 10MB
|
|
fd --size +10m
|
|
|
|
# Files smaller than 1KB
|
|
fd --size -1k
|
|
|
|
# Specific size range
|
|
fd --size +100k --size -10m
|
|
```
|
|
|
|
## Output formatting
|
|
```bash
|
|
# Absolute paths
|
|
fd --absolute-path
|
|
|
|
# List format (like ls -l)
|
|
fd --list-details
|
|
|
|
# Null separator (for xargs)
|
|
fd -0 pattern
|
|
|
|
# Color always/never/auto
|
|
fd --color always pattern
|
|
```
|
|
|
|
## Common Use Cases
|
|
|
|
**Find and delete old files:**
|
|
```bash
|
|
fd --changed-before 30d -t f -x rm {}
|
|
```
|
|
|
|
**Find large files:**
|
|
```bash
|
|
fd --size +100m --list-details
|
|
```
|
|
|
|
**Copy all PDFs to directory:**
|
|
```bash
|
|
fd -e pdf -x cp {} /target/dir/
|
|
```
|
|
|
|
**Count lines in all Python files:**
|
|
```bash
|
|
fd -e py -x wc -l | awk '{sum+=$1} END {print sum}'
|
|
```
|
|
|
|
**Find broken symlinks:**
|
|
```bash
|
|
fd -t l -x test -e {} \; -print
|
|
```
|
|
|
|
**Search in specific time window:**
|
|
```bash
|
|
fd --changed-within 2d --changed-before 1d
|
|
```
|
|
|
|
## Integration with other tools
|
|
|
|
**With ripgrep:**
|
|
```bash
|
|
fd -e js | xargs rg "pattern"
|
|
```
|
|
|
|
**With fzf (fuzzy finder):**
|
|
```bash
|
|
vim $(fd -t f | fzf)
|
|
```
|
|
|
|
**With bat (cat alternative):**
|
|
```bash
|
|
fd -e md | xargs bat
|
|
```
|
|
|
|
## Performance Tips
|
|
|
|
- `fd` is typically much faster than `find`
|
|
- Respects `.gitignore` by default (disable with `-I`)
|
|
- Uses parallel traversal automatically
|
|
- Smart case: lowercase = case-insensitive, any uppercase = case-sensitive
|
|
|
|
## Tips
|
|
|
|
- Use `-t` for type filtering (f=file, d=directory, l=symlink, x=executable)
|
|
- `-e` for extension is simpler than `-g "*.ext"`
|
|
- `{}` in `-x` commands represents the found path
|
|
- `{.}` strips the extension
|
|
- `{/}` gets basename, `{//}` gets directory
|
|
|
|
## Documentation
|
|
|
|
GitHub: https://github.com/sharkdp/fd
|
|
Man page: `man fd`
|