An example python project
Project description
Overview
bulk-mv is an interactive tool that does what the mv
command does, but for mulitiple files, with the ability to do more like adding and deleting files as well.
Installation
pip install bulk-mv
Usage
When you run bmv <path>
, a bulk-mv (bmv) file will open in a vim buffer, representing the file tree starting in the directory located at <path>
.
Then, you can make your modifications in the vim buffer, and run :wq
to perform the changes.
Suppose your directory file tree was this:
.
├── README.md
└── web
├── public
│ └── photos
│ └── logo.png
└── static
├── javascript
│ ├── auth.js
│ └── main.js
└── styles
└── main.css
Then running bmv <path>
will open up the following bmv file in a vim buffer:
[./] {
README.md
[web] {
[public] {
[photos] {
logo.png
}
}
[static] {
[styles] {
main.css
}
[javascript] {
auth.js
main.js
}
}
}
}
Some Use Cases
Renaming multiple files
Moving multiple directories
BMV Syntax
Here's how to use the only four operators in BMV (+
, -
, >
, >>
) to add, delete, rename, and move files and/or directories.
Creating new files/directories
You can add files or directories using the +
operator.
Here's how to use it to add new files and directories
[./] {
README.md
[web] {
[public] {
[photos] {
logo.png
}
}
+ [templates] {
+ [dashboard] {
dashboard.html
admin.html
}
index.html
about.html
}
[static] {
[styles] {
main.css
+ dashboard.css
}
[javascript] {
auth.js
main.js
}
}
}
}
Notice how you can add multiple nested directories. If you want to add a single file
you need to type + new_file.txt
in the directory block where you want it.
If you create a new directory with (also new) files inside of it, you don't need to use
the +
operator to add them. But for new nested directories, you do need to use the +
operator.
Deleting files/directories
You can delete files or directories using the -
operator.
You can delete entire directories or files like this:
[./] {
README.md
[web] {
[public] {
[photos] {
logo.png
}
}
[static] {
- [styles] {
main.css
}
[javascript] {
- auth.js
main.js
}
}
}
}
Running this would delete the ./web/static/javascript/auth.js
file as well as the ./web/static/styles/
folder (and of course everything in it).
Renaming files/directories
You can rename files or directories using the >
operator.
[./] {
README.md
[web] {
[public] {
[photos > images] {
logo.png
}
}
[static] {
[styles] {
main.css
}
[javascript] {
auth.js
main.js > script.js
}
}
}
}
Running this would rename the ./web/public/photos/
directory to ./web/public/images/
, and rename ./web/static/javascript/main.js
to ./web/static/javascript/script.js
Moving files/directories
You can move files or directories using the >>
operator. Moving files to paths with non-existent directories will not be created automatically.
[./] {
README.md >> ./web
[web] {
[public] {
[photos >> ./web/static] {
logo.png
}
}
[static] {
[styles] {
main.css
}
[javascript] {
auth.js
main.js
}
}
}
}
Running this would move ./README.md
to ./web/README.md
, and move ./web/public/photos/
to ./web/static/photos
.
You currently have to specify the full path to the directory you want to move the file/directory to starting from root path of the file tree (in this case, it's ./
).
Putting it all together.
Of course, you can mix and match these operations all in one go. Just note the order of operations to avoid making a mistake, like moving a file to a directory that you haven't created yet, for example.
Operations are given the following precedence:
- add
- delete
- rename (files first, then directories)
- move (files first, then directories)
Caveat
So far, bulk-mv only works on files/directories with POSIX Portable filenames/dirnames.
In the future version, I want bulk-mv to support any type of support filenames on Mac OS, Linux, and Windows.
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
Built Distribution
File details
Details for the file bulk-mv-0.1.5.tar.gz
.
File metadata
- Download URL: bulk-mv-0.1.5.tar.gz
- Upload date:
- Size: 202.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 903eb873c3b908d528450c8d47628766df3d87e49ad4f927954872b6dca61c0a |
|
MD5 | 6cb43096b443cd6391d1b3a30a5dd445 |
|
BLAKE2b-256 | d2e543f919f0b2c190e655e27e7da78c45f4f36606aaaa65296d20e5fa69dfa6 |
File details
Details for the file bulk_mv-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: bulk_mv-0.1.5-py3-none-any.whl
- Upload date:
- Size: 27.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc54fb8227924ca2eec8ed890bfb3c868d7ad8d41f852b117eb6ebce00656ba0 |
|
MD5 | 2fab94a96578a363fab711ca65a31b2d |
|
BLAKE2b-256 | 07cb162698504cad73465bbe59d3fa8d984a47ce6416f20557739967ef34de2d |