Get AI summaries of any video or article — Sign up free
How to Bulk Move Obsidian Files with Dataview Plugin thumbnail

How to Bulk Move Obsidian Files with Dataview Plugin

Prakash Joshi Pax·
5 min read

Based on Prakash Joshi Pax's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Install and enable the File Cooker community plugin to perform batch file moves in Obsidian.

Briefing

Moving Obsidian notes between folders usually turns into a manual scavenger hunt—especially when the notes you care about are mixed into a larger “resources” or “books” folder. A faster workflow uses the File Cooker community plugin together with a DataView query to batch-select the exact notes you want (by tag, folder, or other criteria) and then move them to a target folder in one operation.

The process starts by installing File Cooker from the community plugins area and enabling it. File Cooker is designed for batch actions across multiple nodes, including moving files between folders, batch editing properties, and deleting multiple files. For this workflow, the key capability is “move data view query results,” which takes the results of a DataView query and relocates every matching note to a chosen destination folder.

Next, DataView must be available so a query can precisely identify the notes. The example uses a tag-based approach: book notes are marked with a tag (e.g., “book”), and a DataView query like “list from tag …” is used to generate a live list of all matching notes. After previewing the query to confirm the correct set of results, the user triggers File Cooker from the command palette. The crucial detail is that the DataView query itself must be selected as the source—running File Cooker without selecting the specific query context leads to errors (including a “string error”). Once the correct query is selected, File Cooker prompts for the destination folder, and the move completes with a success confirmation.

A second example shows moving notes based on search results from a different folder. It also reveals a common gotcha: tags may exist in different places inside notes. In one case, the “book” tag appears in the note body for some files, but in the YAML front matter for others. That difference affects what DataView returns, so some notes remain behind after the move. The fix is to adjust the DataView query to match the tag location correctly—creating a new query that targets the tag as it appears in the front matter (e.g., using “book #tag” in the query) so the result set fully matches the intended notes.

By combining DataView’s filtering power with File Cooker’s batch move command, the workflow turns folder cleanup into a repeatable, low-effort operation. It’s especially useful when organizing a messy vault into a cleaner folder structure, because it avoids manual selection and moving while still giving control over exactly which notes get relocated.

Cornell Notes

Batch-moving notes in Obsidian becomes practical when DataView is used to generate a precise list of target notes and File Cooker is used to move that list in bulk. The workflow installs and enables File Cooker, then creates a DataView query (often tag-based) and previews it to verify the correct results. From the command palette, File Cooker’s “move data view query results to …” command moves every note returned by the selected query into a chosen destination folder. A key pitfall is running File Cooker without selecting the actual DataView query context, which can trigger errors. Another pitfall is inconsistent tag placement (note body vs YAML front matter), which can leave some notes behind unless the query matches the tag location.

Why does the workflow rely on both DataView and File Cooker instead of only one plugin?

DataView provides the selection logic: it generates a list of notes that match a filter such as a tag (e.g., “book”) or a folder constraint. File Cooker provides the batch action: it can take the results of a DataView query and move all matching notes to a destination folder in one confirmation step. Without DataView, File Cooker has no reliable way to know which subset of notes to move when many different note types share the same folder.

What’s the most common reason File Cooker throws an error during a move?

The move command must be run with the correct DataView query selected as the source. If File Cooker is triggered from the command palette without selecting the specific query context (for example, selecting only the “list from …” line incorrectly), the destination step can fail with a “string error.” Selecting the actual DataView query results (not just the query type) resolves it.

How does tag placement inside a note affect which files get moved?

Tag placement can change what DataView returns. In the example, some notes had the “book” tag in the note body, while others had the tag in the YAML front matter. A query that matches one placement may return only part of the intended set, leaving some notes behind after the move. Creating a new DataView query that matches the tag as it appears in front matter (e.g., using “book #tag” in the query) can bring the remaining notes into the result set.

What’s the practical workflow from “create query” to “confirm move”?

Create a new note for the DataView query, write a query that lists the target notes (such as “list from tag book”), and click preview to render the results. Then open the command palette, run File Cooker’s “move data view query results to …,” choose the destination folder, and confirm. After confirmation, the notes appear in the target folder.

When would moving from a DataView search result be preferable to moving from a folder-based selection?

Folder-based selection alone can be too broad when a folder contains multiple note types. The example notes that if all files were already in one folder and all were the same type, the extra plugin step might be unnecessary. When a folder mixes many note categories, DataView filtering (tags, links, or other metadata) is what narrows the move to only the notes that matter.

Review Questions

  1. If File Cooker reports a “string error” during a move, what part of the setup should be checked first?
  2. How would you modify your DataView query if some notes store the “book” tag in YAML front matter while others store it in the note body?
  3. Why is previewing DataView results before running the move command an important step?

Key Points

  1. 1

    Install and enable the File Cooker community plugin to perform batch file moves in Obsidian.

  2. 2

    Use DataView to generate an exact list of notes to move (commonly by tag like “book”).

  3. 3

    Preview DataView query results to confirm the selection set before running the move.

  4. 4

    Run File Cooker’s “move data view query results to …” with the correct DataView query selected to avoid errors.

  5. 5

    Choose the destination folder in the confirmation prompt; the move completes for all notes in the query result set.

  6. 6

    Expect incomplete moves if tags are inconsistently placed (note body vs YAML front matter) and adjust the DataView query accordingly.

  7. 7

    File Cooker supports other batch operations (like editing properties and deleting files), but the move workflow hinges on DataView-driven selection.

Highlights

Batch moving works by piping DataView query results into File Cooker’s “move … to folder” command, eliminating manual note-by-note relocation.
A “string error” can happen when File Cooker is triggered without selecting the actual DataView query context as the source.
Inconsistent tag placement (body vs YAML front matter) can cause some notes to be skipped, requiring a query that matches the tag location.

Topics

Mentioned