Skip to main content

Use it to clear your junk in nested directories Looks for target file/directory through specified tree and then removes everything

Project description

nested-rimraf

Nested rimraf CLI app.

Use it to clear your junk in nested directories Looks for target file/directory through specified tree and then removes everything

Package version

Practice

Imaginary folder structure:

/subject
   /file
     /node_modules // file, not directory
   /node_modules
     /enemy.txt
   /sub
     /2
       /1
         /4
           /node_modules
             /enemy.txt
     /3
       /node_modules
         /enemy.txt
   /sub2
     /node_modules
       /enemy.txt
   /symlink
     /example
       /enemy.txt
     /node_modules // symlink to /subject/symlink/example

Tasks:

  1. Find all node_modules
  2. Find and remove all node_modules
  3. Find and remove all directories named node_modules
  4. Find and remove all node_modules, but do not remove symlinks
  5. [Ultimate] Find all node_modules, except files and symlinks, save them to file, correct file and remove the remaining

1. Find all node_modules

We need to run scan command with target=node_modules and directory=./subject

$> nested-rimraf scan node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules

2. Find and remove all node_modules

As easy, as previous one. Just use rm instead of scan

$> nested-rimraf rm node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Are you sure you want to delete it? [y/N]: y
Done flawlessly!

Note: Question Are you sure you want to delete it? [y/N]: y may be avoided with --agree/-y option. Like that:

$> nested-rimraf rm -y node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

3. Find and remove all directories named node_modules

Ok, lets add option --dir-only/-d

$> nested-rimraf rm -y node_modules ./subject --dir-only 

Directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

As you can see, there is no subject/file/node_modules in the list (because it's file, not a directory).

Let's run something similar

4. Find and remove all node_modules, but do not remove symlinks

Same pattern:

$> nested-rimraf rm -y node_modules ./subject --without-symlinks

Directories (include symlinks):
         subject/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

Let's try the hardest one, shall we?

5. [Ultimate] Find all node_modules, except files and symlinks, save them to file, correct file and remove the

remaining

Human control, eh?

$>  nested-rimraf scan -dsL node_modules ./subject --save-path ./subject/to_correct.txt 
Directories (exclude symlinks):
         subject/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Successfully saved list to "subject/to_correct.txt"

A lot of params:

  • -d - same as --dir-only. Includes only directories
  • -s - same as --without-symlinks. Excludes symlinks
  • -L - same as --save-list. Saves list of matches to file
  • --save-path - path to save matches

What does this file contain? Nothing special, just list of files

$> cat ./subject/to_correct.txt

subject/node_modules
subject/sub/node_modules
subject/sub/3/node_modules
subject/sub/2/1/4/node_modules
subject/sub2/node_modules

Let's take it easy and save subject/sub/node_modules by removing it from the file.

And, 3, 2, 1, clear!

$> nested-rimraf rmf -yds ./subject/to_correct.txt

Directories (enclude symlinks):
         subject/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

Good job!

Usage:

$ nested-rimraf [OPTIONS] COMMAND [ARGS]...

Options:

  • --install-completion: Install completion for the current shell.
  • --show-completion: Show completion for the current shell, to copy it or customize the installation.
  • --help: Show this message and exit.

Commands:

  • rm: Scan and remove targets inside directory and...
  • rmf: Took file, generated by "nested-rimraf scan"...
  • scan: Scan directory and child-directories to find...

nested-rimraf rm

Scan and remove targets inside directory and sub-directories

Usage:

$ nested-rimraf rm [OPTIONS] TARGET [DIRECTORY]

Arguments:

  • TARGET: Target name to find inside of directory [required]
  • [DIRECTORY]: Directory to scan in [default: .]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -y, --agree: Remove without any questions [default: False]
  • -I, --ignore-errors: Ignore errors and delete until possible [default: False]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

nested-rimraf rmf

Took file, generated by "nested-rimraf scan" and remove everything from it

Usage:

$ nested-rimraf rmf [OPTIONS] [SAVE_PATH]

Arguments:

  • [SAVE_PATH]: Remove list from passed file or ".nr-todo" inside passed directory [default: .nr-todo]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -y, --agree: Remove without any questions [default: False]
  • -I, --ignore-errors: Ignore errors and delete until possible [default: False]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

nested-rimraf scan

Scan directory and child-directories to find targets

Usage:

nested-rimraf scan

Usage:

$ nested-rimraf scan [OPTIONS] TARGET [DIRECTORY]

Arguments:

  • TARGET: Target name to find inside of directory [required]
  • [DIRECTORY]: Directory to scan in [default: .]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -L, --save-list: Save list of targets for further use [default: False]
  • --save-path TEXT: File to save list of targets [default: .nr-todo]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nested-rimraf-1.0.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

nested_rimraf-1.0.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file nested-rimraf-1.0.0.tar.gz.

File metadata

  • Download URL: nested-rimraf-1.0.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.5.0

File hashes

Hashes for nested-rimraf-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a1593f2104d180d3b0e7a6b4c11d758c48eff32fd842c4c63e9ad8c968c14b26
MD5 0548e781a3a0a0531aee646e3dc3f6b4
BLAKE2b-256 a4999114eca288d41f2065c7ce1fc93f65b5a41a51af3c4ec99fd7c555f03a85

See more details on using hashes here.

File details

Details for the file nested_rimraf-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: nested_rimraf-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.5.0

File hashes

Hashes for nested_rimraf-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4f0cf6562b0ae631b7615baffe9b38bd40e4f726a1a20b38de423c3df3cdb77
MD5 aefbec9c6547dd5e6f0b8bf297d684be
BLAKE2b-256 cff54833c795c16d0d7ae3f17150c29593e88a72450101b125b5ff75658d7691

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page