CLI: Directory Operations¶
← CLI Reference | API Documentation
This document describes CLI commands for directory management and their Python API equivalents.
mkdir - Create directory¶
Create a new directory.
CLI:
# Create directory
nexus mkdir /workspace/data
# Create with parents
nexus mkdir /workspace/deep/nested/dir --parents
Python API:
# Create directory
nx.mkdir("/workspace/data")
# Create directory with parents
nx.mkdir("/workspace/deep/nested/dir", parents=True)
# Don't error if exists
nx.mkdir("/workspace/data", exist_ok=True)
# Create with specific user context
from nexus.core.permissions import OperationContext
ctx = OperationContext(user="alice", groups=["team-engineering"])
nx.mkdir("/workspace/alice/projects", parents=True, context=ctx)
Options: - --parents, -p: Create parent directories as needed (like mkdir -p) - --remote-url URL: Connect to remote server - --remote-api-key KEY: API key for authentication
See Also: - Python API: mkdir()
rmdir - Remove directory¶
Remove a directory.
CLI:
# Remove empty directory
nexus rmdir /workspace/data
# Remove recursively
nexus rmdir /workspace/data --recursive --force
Python API:
# Remove empty directory
nx.rmdir("/temp/empty")
# Remove directory and all contents
nx.rmdir("/temp/cache", recursive=True)
# Remove with specific user context
from nexus.core.permissions import OperationContext
ctx = OperationContext(user="alice", groups=["team-engineering"])
nx.rmdir("/workspace/alice/temp", recursive=True, context=ctx)
Options: - --recursive, -r: Remove directory and all contents (like rm -rf) - --force, -f: Skip confirmation prompt - --remote-url URL: Connect to remote server - --remote-api-key KEY: API key for authentication
See Also: - Python API: rmdir()
ls - List files¶
List directory contents.
CLI:
# List directory
nexus ls /workspace
# Recursive listing
nexus ls /workspace --recursive
# Detailed listing
nexus ls /workspace --long
# Time-travel: List at historical point
nexus ls /workspace --at-operation op_abc123
Python API:
# List directory
entries = nx.list("/workspace")
for entry in entries:
print(f"{entry['name']} - {entry['type']}")
# List with details
entries = nx.list("/workspace")
for entry in entries:
print(f"{entry['name']}: {entry['size']} bytes, modified {entry['modified_at']}")
# Recursive list
entries = nx.list("/workspace", recursive=True)
# Time-travel list
from nexus.core.permissions import OperationContext
ctx = OperationContext(at_operation="op_abc123")
entries = nx.list("/workspace", context=ctx)
Options: - --recursive, -r: List recursively - --long, -l: Detailed output with size, modified time, etc. - --at-operation OP_ID: List at specific operation point (time-travel) - --remote-url URL: Connect to remote server - --remote-api-key KEY: API key for authentication
See Also: - Python API: list() - Time Travel
tree - Display directory tree¶
Display directory structure as a tree.
CLI:
Python API:
# Tree view is CLI-only, but you can build it from list()
def print_tree(nx, path="/", prefix="", recursive=True):
"""Print directory tree"""
entries = nx.list(path)
for i, entry in enumerate(entries):
is_last = i == len(entries) - 1
connector = "└── " if is_last else "├── "
print(f"{prefix}{connector}{entry['name']}")
if entry['type'] == 'directory' and recursive:
extension = " " if is_last else "│ "
child_path = f"{path.rstrip('/')}/{entry['name']}"
print_tree(nx, child_path, prefix + extension)
print_tree(nx, "/workspace")
Options: - --remote-url URL: Connect to remote server - --remote-api-key KEY: API key for authentication
Common Workflows¶
Basic directory management¶
# Create a directory structure
nexus mkdir /projects/myapp/src --parents
nexus mkdir /projects/myapp/docs --parents
nexus mkdir /projects/myapp/tests --parents
# List the structure
nexus tree /projects
# List with details
nexus ls /projects/myapp --long
# Remove a directory
nexus rmdir /projects/myapp/tests --recursive --force
Python equivalent¶
import nexus
# Initialize
nx = nexus.Nexus(data_dir="./nexus-data")
# Create directory structure
nx.mkdir("/projects/myapp/src", parents=True)
nx.mkdir("/projects/myapp/docs", parents=True)
nx.mkdir("/projects/myapp/tests", parents=True)
# List the structure
entries = nx.list("/projects/myapp")
for entry in entries:
print(f"{entry['name']} ({entry['type']})")
# List recursively with details
def list_recursive(path, indent=0):
entries = nx.list(path)
for entry in entries:
prefix = " " * indent
print(f"{prefix}{entry['name']} - {entry['size']} bytes")
if entry['type'] == 'directory':
child_path = f"{path.rstrip('/')}/{entry['name']}"
list_recursive(child_path, indent + 1)
list_recursive("/projects/myapp")
# Remove directory
nx.rmdir("/projects/myapp/tests", recursive=True)