-
-
Notifications
You must be signed in to change notification settings - Fork 0
File Operations
Unifyl Basic provides a comprehensive set of file operations designed for efficiency and safety. This page covers every file operation in detail, including the operation queue, undo/redo system, and special handling for cloud and remote files.

- Core Operations Overview
- Copy (F5)
- Move (F6)
- Delete (F8)
- New Folder (F7)
- Rename (Shift+Return)
- Open and Edit
- Compress and Extract
- Clipboard Operations
- Drag and Drop
- Undo and Redo
- Operation Queue
- File Permissions
- Get Info
- Cloud and Remote File Handling
- selectedOrCursorItems Logic
| Operation | Shortcut | Alternative | Description |
|---|---|---|---|
| Copy | F5 |
Cmd+D |
Copy items to the opposite panel |
| Move | F6 |
Cmd+Shift+D |
Move items to the opposite panel |
| Delete | F8 |
Cmd+Delete |
Move items to the Trash |
| New Folder | F7 |
Cmd+Shift+N |
Create a new directory |
| Rename | Shift+Return |
-- | Rename the cursor item |
| Open | Cmd+O |
Return (on files) |
Open with default application |
| Edit | F4 |
-- | Open in default text editor |
| Compress | Shift+F5 |
-- | Create a ZIP archive |
| Extract | Shift+F9 |
-- | Extract an archive to a folder |
| Get Info | Cmd+I |
-- | Show detailed file information |
All operations that modify files (copy, move, delete, rename) use the selectedOrCursorItems logic described at the bottom of this page.
- Select source files in the active panel (or position the cursor on a single file).
- Ensure the inactive panel is navigated to the desired destination directory.
- Press
F5(orCmd+D). - The Copy Confirmation Dialog appears showing:
- List of files to be copied
- Source path
- Destination path
- Total size
- Press
Returnor click Copy to proceed.
The confirmation dialog provides:
| Element | Description |
|---|---|
| File list | Names and sizes of all items being copied |
| Source path | The directory from which files are being copied |
| Destination path | The directory to which files will be copied (editable) |
| Total size | Combined size of all items |
| Copy button | Confirm and start the operation |
| Cancel button | Abort without making any changes |
Tip: You can edit the destination path directly in the confirmation dialog if you want to copy to a different location than the inactive panel's current directory.
- Directories: When copying a directory, its entire contents are copied recursively, preserving the internal directory structure.
- Symbolic links: Symlinks are copied as symlinks (the link itself, not the target), unless the target does not exist.
- File attributes: POSIX permissions, creation date, and modification date are preserved on the copies.
- Large files: Files larger than a configurable threshold trigger the progress indicator with speed and ETA display.
-
Same volume: Copies on the same volume are performed using
FileManager.copyItem, which is optimized by the filesystem (APFS clone-on-write when possible). - Cross-volume: Cross-volume copies stream the data, showing real-time progress.
- Select source files in the active panel.
- Ensure the inactive panel shows the destination.
- Press
F6(orCmd+Shift+D). - Confirm in the Move Confirmation Dialog.
- Same volume: Move is implemented as a rename operation, which is nearly instantaneous regardless of file size (the data does not move on disk, only the directory entry changes).
- Cross-volume: Move is implemented as copy-then-delete. The files are first copied to the destination volume, and only after successful copy is the source deleted.
- Error handling: If a cross-volume move fails during the copy phase, the partially copied files are cleaned up and the source files are left untouched.
Warning: Moving files across volumes (e.g., from an internal SSD to an external drive) takes as long as copying because the data must physically transfer. The progress dialog will show for large cross-volume moves.
- Select files to delete (or position cursor on a single file).
- Press
F8(orCmd+Delete). - A confirmation dialog appears listing all files that will be deleted.
- Confirm to proceed.
By default, Unifyl moves files to the macOS Trash (~/.Trash), not permanently deleting them:
- Trashed files can be recovered from the Trash in Finder.
- Trashed files can also be recovered using Unifyl's Undo (
Cmd+Z) immediately after deletion. - The Trash must be emptied (in Finder) for files to be permanently removed from disk.
Note: Files on remote filesystems (FTP, SFTP, etc.) or volumes that do not support Trash may be permanently deleted. A warning appears in these cases.
- Press
F7(orCmd+Shift+N). - A dialog prompts for the new folder name.
- Enter the desired name and press
Return. - The folder is created in the active panel's current directory.
- The cursor moves to the newly created folder.
If a folder with the same name already exists, an error message appears and the operation is cancelled.
- Move the cursor to the file you want to rename.
- Press
Shift+Return. - The filename becomes editable inline.
- Edit the name (the extension is included in the editable text).
- Press
Returnto confirm the new name. - Press
Escapeto cancel and keep the original name.
Rename rules:
- The filename cannot be empty.
- The filename cannot contain
/(path separator). - If a file with the new name already exists, an error appears.
- Renaming preserves all file attributes, permissions, and timestamps.
Press Opt+Cmd+R to open the Multi-Rename tool for batch renaming:
- Search and Replace: Replace text patterns in filenames.
-
Numbering: Add sequential numbers (e.g.,
Photo_001.jpg,Photo_002.jpg). - EXIF-based: Rename using EXIF metadata (date taken, camera model).
- AI Rename: Use AI to generate meaningful filenames based on file content (images, documents).
- Presets: Save and load renaming presets for repeated use.
- Preview: See the before/after filenames before applying.
-
Undo: All multi-rename operations can be undone with
Cmd+Z.
Available via the Tools menu or Command Palette, the Regex Rename tool allows renaming files using regular expressions:
- Match pattern: A regex pattern to match against filenames.
-
Replace pattern: A replacement string with capture group references (
$1,$2, etc.). - Preview: Live preview of the rename results before applying.
Change file extensions for multiple files at once:
- Select the files whose extensions you want to change.
- Open the Batch Extension tool (via Command Palette or menu).
- Enter the new extension.
- Preview and confirm.
| Shortcut | Action | Description |
|---|---|---|
Cmd+O |
Open | Open the cursor/selected item with its default application |
Return |
Open/Enter | Open a file with default app, or enter a directory |
F4 |
Edit | Open the cursor item in the default text editor |
Opt+Cmd+O |
Open in Opposite Panel | Navigate the opposite panel to the item's directory |
Open uses macOS's default application associations (the same app that would open if you double-clicked in Finder).
Edit specifically opens the file in a text editor, which is useful for quickly editing configuration files, scripts, or any text-based file regardless of its default association.
- Select the files and/or folders you want to compress.
- Press
Shift+F5or use the File > Compress menu. - A dialog appears where you can:
- Set the archive name
- Choose the archive format (ZIP is default)
- Optionally set a password for encrypted archives
- Confirm to create the archive.
Supported archive creation formats:
- ZIP (with optional AES-256 encryption)
- 7-Zip
- TAR, TAR.GZ, TAR.BZ2, TAR.XZ
| Shortcut | Action |
|---|---|
Shift+F9 |
Extract to a named folder |
| (unassigned) | Extract here (into the current directory) |
Supported extraction formats: ZIP, 7-Zip, TAR, GZ, BZ2, XZ, RAR, ZSTD.
Unifyl can browse archives as virtual folders:
- Double-click (or press
Returnon) an archive file to enter it as if it were a directory. - Navigate through the archive's internal directory structure.
- Copy files out of the archive to a real directory (drag or
F5). - The path bar shows the archive path with the internal subpath.
- Press
Backspaceto navigate up within the archive, or exit the archive entirely.
Supported browse formats: ZIP, 7-Zip, TAR, GZ, BZ2, XZ, RAR, ZSTD.
Note: Modifications inside archives (editing, renaming, deleting archive entries) require extracting, modifying, and re-archiving. Unifyl handles this transparently for supported formats.
Press Cmd+C to copy selected/cursor files to the system clipboard. These files can then be pasted into Unifyl (another panel or tab) or into Finder.
Press Cmd+X to cut files. When pasted, the files are moved (not copied) to the destination.
Press Cmd+V to paste files from the clipboard into the active panel's current directory.
- If the clipboard contains copied files, they are duplicated.
- If the clipboard contains cut files, they are moved.
Press Ctrl+H to open the Clipboard History panel, which shows recent clipboard entries. Click an entry to paste it.
Unifyl supports macOS-native drag and drop:
-
Within Unifyl: Drag files between panels, between tabs, or within a panel to move/copy them.
- Default drag: Move (within the same volume) or Copy (across volumes).
- Hold
Optwhile dropping: Force Copy. - Hold
Cmdwhile dropping: Force Move.
- From Finder to Unifyl: Drop files from Finder into a Unifyl panel to copy/move them.
- From Unifyl to Finder: Drag files from Unifyl to a Finder window or Desktop.
- From Unifyl to other apps: Drag files into any app that accepts file drops.
Drag and drop respects the same conflict resolution rules as keyboard-initiated operations.
Press Cmd+Z to undo the last file operation:
| Operation | Undo Action |
|---|---|
| Copy | Delete the copies from the destination |
| Move | Move the files back to their original location |
| Delete (Trash) | Restore from Trash to original location |
| Rename | Rename back to the original name |
| New Folder | Delete the newly created folder |
The undo history is maintained as a stack. You can undo multiple operations in sequence by pressing Cmd+Z repeatedly.
- Undo is session-scoped: The undo history is cleared when you quit Unifyl.
- Trash restoration: Undo of a delete operation restores the file from macOS Trash to its original path.
- Conflict on undo: If a file with the original name now exists at the undo destination, a conflict dialog appears.
- Cross-volume undo: Undoing a cross-volume move performs another cross-volume transfer (the data must physically transfer back).
Tip: The undo system records the complete state of each operation, including source paths, destination paths, and original filenames. This makes it reliable even for complex batch operations.
When you initiate a file operation (copy, move, delete), it is added to the operation queue:
- Operations run one at a time by default (sequential queue).
- The active operation shows a progress bar with speed and estimated time remaining.
- Queued operations wait until the current operation completes.
- You can continue browsing and selecting files while operations run in the background.
During an active operation:
- Click Pause in the progress dialog to pause the current operation.
- Click Resume to continue from where it left off.
- Click Cancel to abort the operation entirely.
Pausing does not lose progress -- the operation resumes exactly where it stopped.
The progress display shows:
| Information | Description |
|---|---|
| Current file | The name of the file currently being processed |
| Progress bar | Visual percentage completion |
| Files processed | e.g., "145 of 1,203 files" |
| Size processed | e.g., "2.3 GB of 8.1 GB" |
| Speed | Current transfer speed (e.g., "125 MB/s") |
| Estimated time | Time remaining estimate |
When a file already exists at the destination during a copy or move operation, the Conflict Resolution dialog appears:
| Option | Description |
|---|---|
| Overwrite | Replace the existing file with the new one |
| Overwrite All | Replace all existing files without further prompts |
| Skip | Skip this file and continue with the rest |
| Skip All | Skip all conflicting files |
| Rename | Keep both files by renaming the new one (appending a number) |
| Compare | Open a side-by-side comparison of the existing and new file |
The conflict dialog shows file details (size, date) for both the source and existing file to help you decide.
Access via File > File Permissions or the Command Palette:
- View and edit POSIX file permissions (owner, group, others).
- Set read, write, execute flags individually.
- View the numeric permission value (e.g.,
0644). - Apply permissions recursively to directory contents.
Press Cmd+I to open the Get Info panel for the cursor item:
- File name and full path
- File size (on disk)
- Creation date, modification date, last access date
- File type and UTI (Uniform Type Identifier)
- POSIX permissions
- Owner and group
- Extended attributes
- macOS tags
When working with files on remote connections (FTP, SFTP, WebDAV, cloud storage):
- Copy/Move operations transfer data over the network. Progress shows network speed.
- Delete operations may be permanent (no Trash on remote filesystems). A warning appears.
- Rename operations are performed server-side when possible (instant).
- Large file transfers are streamed with chunked transfer, supporting pause/resume where the protocol allows.
For iCloud Drive and other macOS-integrated cloud storage:
- Files may exist in a cloud-only state (not downloaded locally).
- Unifyl shows download progress for cloud-only files when accessed.
- A cloud icon indicator appears next to files that are not downloaded.
This is the fundamental pattern used by all file operations in Unifyl:
When a file operation is triggered:
1. Check if any items are SELECTED (explicitly marked).
2. If yes -> operate on ALL selected items.
3. If no -> operate on the CURSOR item (the single highlighted row).
This means:
- For a single file: Just move the cursor to it and press the operation key. No need to explicitly select it.
-
For multiple files: Select them first (using
Insert,Space,Shift+Up/Down, orCmd+A), then press the operation key. -
The
..(parent directory) entry is always excluded from operations, even if the cursor is on it.
Important: If you have files selected and you want to operate on a different single file, either deselect everything first (
Cmd+Atwice) or select only the desired file.
This pattern applies to: Copy (F5), Move (F6), Delete (F8), Compress (Shift+F5), Open (Cmd+O), Edit (F4), Get Info (Cmd+I), and all other file-targeting operations.
๐ฌ๐ง English ยท ๐ฐ๐ท ํ๊ตญ์ด (Korean)
- Dual-Pane Navigation
- File Operations
- Selection
- Search and Filter
- Multi-Rename
- Archive Virtual Folders
- Tags
- Keyboard Shortcuts
- Command Palette
- Smart Folders