3 ms·
The zsh rm command doesn't with too many (say, 100 000) files, execve() fails with: Argument list too long. This works and it is relatively fast (runs rm in big
by ptspts 4y ago
The zsh rm command doesn't with too many (say, 100 000) files, execve() fails with: Argument list too long. This works and it is relatively fast (runs rm in big batches): find ... | xargs -d '\n' rm --
- pmoriarty 4y agoYou can do the same with: zargs -- **/*(m+7) -- rm I updated my answer above accordingly.
- blaerk 4y agoFor you can skip xargs for that and just add the -delete argument to find, for readability and profit(!?)
- tyingq 4y agoPerl is also helpful to pipe to for any tool that outputs lists of files, like find . -type f -name '*foo' | perl -ne 'print;chomp;unlink' And it has the same -0 switch as xargs to pair with find's -print0. Not helpful in this case since you have other options, but maybe helpful for things like bulk touch, chmod, etc.