How to Bulk Move Obsidian Files with Dataview Plugin
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.
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?
What’s the most common reason File Cooker throws an error during a move?
How does tag placement inside a note affect which files get moved?
What’s the practical workflow from “create query” to “confirm move”?
When would moving from a DataView search result be preferable to moving from a folder-based selection?
Review Questions
- If File Cooker reports a “string error” during a move, what part of the setup should be checked first?
- 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?
- Why is previewing DataView results before running the move command an important step?
Key Points
- 1
Install and enable the File Cooker community plugin to perform batch file moves in Obsidian.
- 2
Use DataView to generate an exact list of notes to move (commonly by tag like “book”).
- 3
Preview DataView query results to confirm the selection set before running the move.
- 4
Run File Cooker’s “move data view query results to …” with the correct DataView query selected to avoid errors.
- 5
Choose the destination folder in the confirmation prompt; the move completes for all notes in the query result set.
- 6
Expect incomplete moves if tags are inconsistently placed (note body vs YAML front matter) and adjust the DataView query accordingly.
- 7
File Cooker supports other batch operations (like editing properties and deleting files), but the move workflow hinges on DataView-driven selection.