Web lists-archives.com

Re: apt-cacher errors




On Mon, Mar 25, 2019 at 12:11:21PM +0000, Adam Weremczuk wrote:
> I've found 30 entries referencing wheezy and removed them all:
> 
> sudo find /var/cache/apt-cacher/ -type f -name *wheezy* | xargs rm

sudo find /var/cache/apt-cacher -type f -name '*wheezy*' -delete

There are three mistakes in your command:

1) The glob must be quoted, or the shell will expand it based on the files
   in the current working directory, wherever that happens to be.

2) xargs without -0 is unsafe to use for filenames, because they may contain
   whitespace or single quotes or double quotes, all of which are special
   to xargs.

3) You ran find with sudo privileges (probably not necessary), and failed
   to run the rm with sudo privileges.  All of the removals are therefore
   going to fail.

You might argue that "apt-cacher never has any files with spaces!"
That may be true.  But it's still a good habit to develop.  Also, -delete
is more efficient than | xargs rm, albeit not portable to POSIX scripts.

If you want it to be portable as well as safe, then:

sudo find /var/cache/apt-cacher -type f -name '*wheezy*' -exec rm {} +

That's less efficient than -delete, but it's the best you can do if
POSIX portability is required.