Convert Figma logo to code with AI

sindresorhus logotrash-cli

Move files and folders to the trash

1,316
35
1,316
11

Top Related Projects

Command line interface to the freedesktop.org trashcan.

5,022

Yet Another Dotfiles Manager

131,863

Command-line program to download videos from YouTube.com and other video sites

85,088

Magnificent app which corrects your previous console command.

50,850

📚 Collaborative cheatsheets for console commands

48,187

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

Quick Overview

Trash-cli is a command-line interface (CLI) tool that moves files and folders to the trash/recycle bin instead of permanently deleting them. It provides a safer alternative to the rm command, allowing users to recover accidentally deleted files. Trash-cli works cross-platform on macOS, Linux, and Windows.

Pros

  • Safer file deletion with the ability to recover files from the trash
  • Cross-platform compatibility (macOS, Linux, Windows)
  • Simple and intuitive command-line interface
  • Integrates well with existing shell workflows

Cons

  • Requires installation and setup, unlike built-in rm command
  • May be slower than direct deletion for large files or numerous small files
  • Limited functionality compared to some graphical file managers
  • Doesn't provide advanced features like scheduled trash emptying

Getting Started

To install trash-cli, use npm:

npm install --global trash-cli

Basic usage:

# Move a file to the trash
trash file.txt

# Move multiple files to the trash
trash file1.txt file2.txt file3.txt

# Move a directory to the trash
trash my_directory/

# Empty the trash
trash-empty

# List items in the trash
trash-list

# Restore a file from the trash
trash-restore

Note: The trash-empty, trash-list, and trash-restore commands are not available on Windows.

Competitor Comparisons

Command line interface to the freedesktop.org trashcan.

Pros of trash-cli (andreafrancia)

  • More comprehensive feature set, including listing and emptying trash
  • Better cross-platform support, including Windows
  • More actively maintained with regular updates

Cons of trash-cli (andreafrancia)

  • Larger codebase, potentially more complex to maintain
  • Requires more dependencies
  • Slightly slower execution due to additional features

Code Comparison

trash-cli (andreafrancia):

def trash(paths):
    for path in paths:
        if os.path.isdir(path):
            trash_directory(path)
        else:
            trash_file(path)

trash-cli (sindresorhus):

const trash = async paths => {
    paths = Array.isArray(paths) ? paths : [paths];
    await Promise.all(paths.map(path => trashItem(path)));
};

The andreafrancia version handles directories and files separately, while the sindresorhus version uses a more streamlined approach. The andreafrancia implementation is in Python, whereas sindresorhus uses JavaScript, which may affect performance and compatibility on different systems.

5,022

Yet Another Dotfiles Manager

Pros of yadm

  • Designed specifically for managing dotfiles across multiple systems
  • Supports encryption of sensitive files
  • Offers system-specific configuration through alternate files

Cons of yadm

  • More complex setup and usage compared to trash-cli
  • Limited to managing dotfiles, not a general-purpose file management tool
  • Steeper learning curve for users unfamiliar with Git

Code Comparison

yadm:

yadm init
yadm add .vimrc
yadm commit -m "Add .vimrc"
yadm push

trash-cli:

trash file.txt
trash-list
trash-restore
trash-empty

Summary

While trash-cli focuses on providing a safe alternative to the rm command for file deletion, yadm is a dotfile management tool. trash-cli offers a simpler, more straightforward approach to file operations, while yadm provides a comprehensive solution for managing configuration files across multiple systems.

trash-cli is ideal for users looking for a safer way to delete files, whereas yadm is better suited for those who need to manage and synchronize their dotfiles across different machines. The choice between the two depends on the specific needs of the user and the task at hand.

131,863

Command-line program to download videos from YouTube.com and other video sites

Pros of youtube-dl

  • Versatile tool for downloading videos from various platforms, not limited to YouTube
  • Supports extraction of audio-only content and playlist downloads
  • Actively maintained with frequent updates and broad community support

Cons of youtube-dl

  • More complex to use, with numerous options and flags
  • Larger codebase and dependencies, potentially slower for simple operations
  • May face legal challenges due to its primary function of downloading content

Code Comparison

youtube-dl:

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=BaW_jenozKc'])

trash-cli:

const trash = require('trash');

(async () => {
    await trash(['*.png', '!important.png']);
    console.log('Files deleted');
})();

While youtube-dl focuses on downloading online content, trash-cli is designed for safe file deletion. The code snippets demonstrate their primary functions: youtube-dl for video downloading and trash-cli for moving files to the trash. youtube-dl's implementation is more complex due to its broader functionality, while trash-cli offers a simpler, more focused API for file management tasks.

85,088

Magnificent app which corrects your previous console command.

Pros of thefuck

  • Automatically corrects mistyped console commands
  • Supports a wide range of shells and applications
  • Highly customizable with user-defined rules

Cons of thefuck

  • May introduce unexpected behavior if not used carefully
  • Requires Python installation and setup
  • Learning curve to understand and customize rules

Code Comparison

thefuck:

@rule
def git_push_force(command):
    return (command.script.startswith('git push')
            and ' -f' not in command.script
            and '--force' not in command.script)

trash-cli:

const fs = require('fs');
const path = require('path');

module.exports = (paths, options) => {
	paths = Array.isArray(paths) ? paths : [paths];

Key Differences

  • Purpose: thefuck focuses on correcting mistyped commands, while trash-cli is for safely deleting files
  • Language: thefuck is written in Python, trash-cli in JavaScript
  • Functionality: thefuck is more complex and versatile, trash-cli is more focused and straightforward
  • Installation: thefuck requires Python setup, trash-cli is a simple npm package
  • Usage: thefuck is used as a command prefix, trash-cli replaces the rm command

Both tools aim to improve the command-line experience, but they serve different purposes and have distinct implementation approaches.

50,850

📚 Collaborative cheatsheets for console commands

Pros of tldr

  • Broader scope: Provides simplified documentation for many CLI commands, not just trash-related operations
  • Community-driven: Large number of contributors and extensive language support
  • Regularly updated with new commands and improvements

Cons of tldr

  • Not a standalone tool: Requires installation and doesn't provide direct functionality
  • Less focused: May not offer as detailed information for specific trash operations

Code comparison

tldr (example usage):

tldr rm
tldr trash-cli

trash-cli (example usage):

trash file.txt
trash-list
trash-restore

Summary

tldr is a comprehensive documentation project that simplifies man pages for various CLI commands, including trash-related operations. It offers a wide range of command explanations but doesn't provide direct functionality. On the other hand, trash-cli is a focused tool specifically designed for safe file deletion and management.

While tldr serves as an excellent reference for understanding commands, trash-cli provides a practical solution for users looking to safely delete files and manage their trash. The choice between the two depends on whether you need a broad reference guide or a specific tool for trash operations.

48,187

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

Pros of ripgrep

  • Significantly faster search performance, especially for large codebases
  • Supports searching within compressed files and archives
  • Respects .gitignore rules by default, improving search relevance

Cons of ripgrep

  • More complex command-line options compared to trash-cli's simplicity
  • Focused solely on searching, while trash-cli handles file deletion
  • Requires more system resources due to its advanced features

Code Comparison

ripgrep example:

rg "pattern" --type-add 'web:*.{html,css,js}' --type web

trash-cli example:

trash file.txt

Key Differences

ripgrep is a powerful search tool designed for speed and advanced filtering, while trash-cli is a simple utility for safely moving files to the trash. Their purposes are quite different, with ripgrep excelling at code and text searching, and trash-cli focusing on file management.

ripgrep offers more features and flexibility for developers and power users, particularly those working with large codebases. trash-cli, on the other hand, provides a straightforward way to safely delete files across different operating systems.

The choice between these tools depends on the specific task at hand: use ripgrep for fast, advanced searching, and trash-cli for safe file deletion.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

trash-cli

Move files and folders to the trash

Works on macOS (10.12+), Linux, and Windows (8+).

In contrast to rm which is dangerous and permanently deletes files, this only moves them to the trash, which is much safer and reversible. I would also recommend reading my guide on safeguarding rm.

Accepts paths and glob patterns.

Install

npm install --global trash-cli

Usage

$ trash --help

  Usage
    $ trash <path|glob> […]

  Examples
    $ trash unicorn.png rainbow.png
    $ trash '*.png' '!unicorn.png'

Tip

Add alias rm=trash to your .zshrc/.bashrc to reduce typing & safely trash files: $ rm unicorn.png.

FAQ

Related

NPM DownloadsLast 30 Days