
Byenow – A command-line Windows utility for faster folder removal - soheilpro
https://iobureau.com/byenow/
======
apankrat
This is mine. I was meaning to do a Show HN post for it actually, just was
waiting for the weekend :)

I've been using this internally for several months. For local deletes YMMV.
There seem to be some sort of central lock in the NTFS driver, so the speed up
comes from being faster with scanning and generally idling less. For freshly
mounted fast drives you may see a speed up of 1.5-2.5 times, but in other
cases it will be just 10-20%.

However for remote deletes this tool is really great. Due to the network
latency, single-threaded deletes will spend most of their time idle - a
request needs to get _there_ and then back before the next one can be fired.
But using threads allows to have multiple requests "in flight", forming a
queue if needed, so the remote end is _always_ doing something. A typical
speed up for a LAN is around 2x, and for VPN links this should be even higher.

In any case, AMA.

~~~
ptah
will it delete files even if open in another process? this is my main bugbear
with windows file deletion: it won't delete it and you need special tools to
track down the process that has the file open

~~~
pjmlp
Which is the right thing to do and the approach taken in all non-UNIX clones.

In any case, since ages one does not need special tools, resource monitor
listing of open handles is enough.

~~~
BubRoss
It's the right thing to give an error that some process has the file open but
never tell you which process that is?

~~~
latitude
That’s an UI issue with the tool.

The underlying behavior is correct though - people with open handles have the
priority unless they have explicitly stated that deleting a file while they
use it is OK.

~~~
BubRoss
What tool? That's windows' behavior. I would agree that locking a file and
preventing deletion is good or possibly queueing a file for deletion when it
is free, but windows does not handle this scenario well.

------
jmnicolas
I always assumed that a delete command would execute at max disk capacity on a
single thread and that multi-threading it would even slow the command (more
random accesses on the disk).

This utility would have been a godsend a couple months ago when I had millions
of XML files to delete on one of our server (12 years of accumulation). It
took several days (it's an old Windows 2003 server with SCSI disks I think).

------
alkonaut
It always amazed me that deleting a remote directory with thousands of files
can be so much slower than remoting into the server, and deleting the
directory. I don't want to recursively list the remote files and then delete
them one by one. I just want to remove the directory from the remote
filesystem!

Can a tool solve that problem? (I guess powershell remote scripts could?)

~~~
apankrat
There's no way to delete multiple files with a single syscall. There's also no
way to purge the folder of all its contents. At least not on Windows, using an
API.

~~~
alkonaut
The syscalls are quick enough when done locally. What I think is going on is
that for a directory with N files on a share, I get N (or likely multiples of
N) _network roundtrips_.

If the network round trip time is 1second and the time to delete the directory
with 1000 files is 1 second when done on the local drive, then I want the
delete on the network share to be 2 seconds not 2000 or 4000 seconds.

~~~
apankrat
For deleting - yes, you will get a round-trip per delete request. So if they
are serialized (which is the case with standard tools), it will be
excruciatingly slow indeed.

For scanning - you'll get the list of content in chunks. The size of a chunk
depends on the size of the buffer you provide. For smaller folders it'll
normally fit in a single request.

------
mvladic
FYI builtin command "RMDIR /Q/S foldername" is fast, at least much faster then
using windows file explorer.

~~~
apankrat
It's mentioned on the homepage.

There's also "del /f /s /q" to delete just files, followed by "rmdir /q /s" to
delete just folders; and there's also "robocopy /mir" with an empty folder as
a source. From what I've seen straight "rmdir" is the fastest of these three.

~~~
5bolts
just "RD Foo /S" if you know you want it gone why all the extra flags and
steps

------
alex3165
byenow node_modules - let's see if it can keep up

~~~
thunderbong
This was my test actually. Because that is the exact reason that I would use
this for.

And it was spectacular. I'm amazed at the speed at which it clears out an
entire folder.

Another nice touch is if I ask it to delete a folder and that folder is open
in a command prompt somewhere, it just goes ahead and deletes it's contents
cleanly.

Excellent piece of software.

------
SeriousM
Is there any difference to npm rimraf? This is removing the node modules
folder in lightning speed

------
fctorial
Btw is there a cli trash utility for linux that handles multiple partitions
correctly?

------
posedge
Funny that you need a third-party tool to do that, isn't it.

