
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Batch rename files and folders.
Install node then:
$ npm install -g renamer
Linux/Mac users may need to run the above with sudo
$ renamer [--regex] [--find <pattern>] [--replace <string>] [--dry-run] [--verbose] <files>
-f, --find The find string, or regular expression when --regex is set.
If not set, the whole filename will be replaced.
-r, --replace The replace string. With --regex set, --replace can reference
parenthesised substrings from --find with $1, $2, $3 etc.
If omitted, defaults to a blank string. The special token
'{{index}}' will insert an incrementing number per file
processed.
-e, --regex When set, --find is intepreted as a regular expression.
-i, --insensitive Enable case-insensitive finds.
-d, --dry-run Used for test runs. Set this to do everything but rename the file.
-v, --verbose Use to print additional information.
-h, --help Print usage instructions.
For more information on Regular Expressions, see this useful guide.
Don't forget to test your rename first using --dry-run
!
Renamer comes with globbing support built in (provided by node-glob). If you want to override your shell's native expansion behaviour (say, for example it lacks the globstar option), pass the glob expression in single quotes and renamer will expand it. For example, this command operates on all js files, recursively:
$ renamer -f 'this' -r 'that' '**/*.js'
Simple replace
$ tree -N
.
├── A poem [bad].txt
├── A story [bad].txt
$ renamer --find '[bad]' --replace '[good]' *
$ tree -N
.
├── A poem [good].txt
├── A story [good].txt
Case insenstive finds
$ tree -N
.
├── A video.MPEG4
├── Another video.Mpeg4
$ renamer --insensitive --find 'mpeg4' --replace 'mp4' *
$ tree -N
.
├── A video.mp4
├── Another video.mp4
Strip out unwanted text:
$ tree -N
.
├── Season 1 - Some crappy episode.mp4
├── Season 1 - Load of bollocks.mp4
$ renamer --find 'Season 1 - ' *
$ tree -N
.
├── Some crappy episode.mp4
├── Load of bollocks.mp4
Simple filename cleanup:
$ tree
.
├── [ag]_Annoying_filename_-_3_[38881CD1].mp4
├── [ag]_Annoying_filename_-_34_[38881CD1].mp4
├── [ag]_Annoying_filename_-_53_[38881CD1].mp4
$ renamer --regex --find '.*_(\d+)_.*' --replace 'Video $1.mp4' *
$ tree
.
├── Video 3.mp4
├── Video 34.mp4
├── Video 53.mp4
Give your images a new numbering scheme:
$ tree
.
├── IMG_5776.JPG
├── IMG_5777.JPG
├── IMG_5778.JPG
$ renamer --replace 'Image{{index}}.jpg' *
$ tree
.
├── Image1.jpg
├── Image2.jpg
├── Image3.jpg
do something about all those full stops:
$ tree
.
├── loads.of.full.stops.every.where.jpeg
├── loads.of.full.stops.every.where.mp4
$ renamer --regex --find '\.(?!\w+$)' --replace ' ' *
$ tree
.
├── loads of full stops every where.jpeg
├── loads of full stops every where.mp4
if not already done, add your name to a load of files:
$ tree
.
├── data1.csv
├── data2 (checked by Lloyd).csv
├── data3.xls
$ renamer --regex --find '(data\d)(\.\w+)' --replace '$1 (checked by Lloyd)$2' *
$ tree
.
├── data1 (checked by Lloyd).csv
├── data2 (checked by Lloyd).csv
├── data3 (checked by Lloyd).xls
rename files and folders, recursively
$ tree
.
├── pic1.jpg
├── pic2.jpg
└── pics
├── pic3.jpg
└── pic4.jpg
$ renamer --find 'pic' --replace 'photo' '**'
$ tree
.
├── photo1.jpg
├── photo2.jpg
└── photos
├── photo3.jpg
└── photo4.jpg
prefix files and folders, recursively
$ tree
.
├── pic1.jpg
├── pic2.jpg
└── pics
├── pic3.jpg
└── pic4.jpg
$ renamer --regex --find '^' --replace 'good-' '**'
$ tree
.
├── good-pic1.jpg
├── good-pic2.jpg
└── good-pics
├── good-pic3.jpg
└── good-pic4.jpg
FAQs
Rename files in bulk
The npm package renamer receives a total of 11,575 weekly downloads. As such, renamer popularity was classified as popular.
We found that renamer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.