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.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nested-rimraf-1.0.1.tar.gz
  • Upload date:
  • Size: 18.7 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.1.tar.gz
Algorithm Hash digest
SHA256 82a27d4f98d1ba94bae678d6086ce0316f2df6744ccda6eb816b1169b2ff6663
MD5 55b3b64f8b880e2f2af7296283ab88df
BLAKE2b-256 b77cb769d0b0423aedb17bfc6e59b218c170737dc9d732c9e013db9d42f1ed3a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nested_rimraf-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97543a756d6738a86970e2b36efec9dcb9e8cc50bd8c15b018811f9fa9acadee
MD5 42ab95553535edbd74f88144a76f8c97
BLAKE2b-256 86a1118902ff8552830a3764e9186c2512f71e8e4e0f0287a40b1523f74a5f10

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