ClawSkills logoClawSkills

Fd Find

一个快速且用户友好的 'find' 替代品——语法简单、默认设置智能、尊重 gitignore。

介绍

# fd - Fast File Finder

`find` 的用户友好替代方案,具备智能默认设置。

## 快速开始

### 基本搜索 ```bash # Find files by name fd pattern

# Find in specific directory fd pattern /path/to/dir

# Case-insensitive fd -i pattern ```

### 常见模式 ```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 ```

## 高级用法

### 过滤 ```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 ```

### 执行 ```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 ```

### 正则表达式模式 ```bash # Full regex search fd '^test.*\.js

## 基于时间的过滤 ```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 ```

## 基于大小的过滤 ```bash # Files larger than 10MB fd --size +10m

# Files smaller than 1KB fd --size -1k

# Specific size range fd --size +100k --size -10m ```

## 输出格式化 ```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 ```

## 常见用例

**查找并删除旧文件:** ```bash fd --changed-before 30d -t f -x rm {} ```

**查找大文件:** ```bash fd --size +100m --list-details ```

**复制所有 PDF 到目录:** ```bash fd -e pdf -x cp {} /target/dir/ ```

**统计所有 Python 文件的行数:** ```bash fd -e py -x wc -l | awk '{sum+=$1} END {print sum}' ```

**查找损坏的符号链接:** ```bash fd -t l -x test -e {} \; -print ```

**在特定时间范围内搜索:** ```bash fd --changed-within 2d --changed-before 1d ```

## 与其他工具集成

**与 ripgrep 配合:** ```bash fd -e js | xargs rg "pattern" ```

**与 fzf (模糊查找器) 配合:** ```bash vim $(fd -t f | fzf) ```

**与 bat (cat 替代品) 配合:** ```bash fd -e md | xargs bat ```

## 性能提示

- `fd` 通常比 `find` 快得多 - 默认遵循 `.gitignore` (使用 `-I` 禁用) - 自动使用并行遍历 - 智能大小写:小写 = 不区分大小写,包含大写 = 区分大小写

## 提示

- 使用 `-t` 按类型过滤 (f=文件, d=目录, l=符号链接, x=可执行文件) - 使用 `-e` 指定扩展名比 `-g "*.ext"` 更简单 - `-x` 命令中的 `{}` 代表找到的路径 - `{.}` 用于去除扩展名 - `{/}` 获取文件名,`{//}` 获取目录

## 文档

GitHub: https://github.com/sharkdp/fd Man 手册页: `man fd`

# Match full path fd --full-path 'src/.*/test'

# Glob pattern fd -g "*.{js,ts}" ```

## 基于时间的过滤 ```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 ```

## 基于大小的过滤 ```bash # Files larger than 10MB fd --size +10m

# Files smaller than 1KB fd --size -1k

# Specific size range fd --size +100k --size -10m ```

## 输出格式化 ```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 ```

## 常见用例

**查找并删除旧文件:** ```bash fd --changed-before 30d -t f -x rm {} ```

**查找大文件:** ```bash fd --size +100m --list-details ```

**复制所有 PDF 到目录:** ```bash fd -e pdf -x cp {} /target/dir/ ```

**统计所有 Python 文件的行数:** ```bash fd -e py -x wc -l | awk '{sum+=$1} END {print sum}' ```

**查找损坏的符号链接:** ```bash fd -t l -x test -e {} \; -print ```

**在特定时间范围内搜索:** ```bash fd --changed-within 2d --changed-before 1d ```

## 与其他工具集成

**与 ripgrep 配合:** ```bash fd -e js | xargs rg "pattern" ```

**与 fzf (模糊查找器) 配合:** ```bash vim $(fd -t f | fzf) ```

**与 bat (cat 替代品) 配合:** ```bash fd -e md | xargs bat ```

## 性能提示

- `fd` 通常比 `find` 快得多 - 默认遵循 `.gitignore` (使用 `-I` 禁用) - 自动使用并行遍历 - 智能大小写:小写 = 不区分大小写,包含大写 = 区分大小写

## 提示

- 使用 `-t` 按类型过滤 (f=文件, d=目录, l=符号链接, x=可执行文件) - 使用 `-e` 指定扩展名比 `-g "*.ext"` 更简单 - `-x` 命令中的 `{}` 代表找到的路径 - `{.}` 用于去除扩展名 - `{/}` 获取文件名,`{//}` 获取目录

## 文档

GitHub: https://github.com/sharkdp/fd Man 手册页: `man fd`

更多产品