Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: newbie rm --^file question



That "--" causes rm to stop looking for flags.  It is handy if the file
pattern argument supplied to rm includes '-' characters.  See the man page
for the rm command, it's explained towards the end.

You don't really need it for what you are doing, but if you would like to
use it, it is a separate argument from the file or globbing pattern:

Try:

rm -rf -- ^com.apple.IntlDataCache.*

And here is an example where you do need to use the "--" argument:

❯ ls
-o      bar.ext foo     foo.ext

~/example/abc
❯ rm -o
rm: illegal option -- o
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

~/example/abc
❯ rm -- -o

~/example/abc
❯ ls
bar.ext foo     foo.ext

~/example/abc

On Sun, Dec 25, 2016 at 1:49 PM Akihiko Hohji <akhst7@xxxxxx> wrote:

> Sorry.  Actually extended glob was due to auto-correction by Apple Mail.
> I really typed in setopt extendedglob.
>
> Either rm -rf with double “-“ ^file.ext.* or a single “-“ does not work.
> I get the same “no matches found” message.  And there is no space in
> between “-“.  I’ve gotten this approach with the double “-“ from a post in
> Stackoverflow.  If I don’t add “*” at the end or begging of file name, it
> works fine.
>
> To just give you more details, the following is the list of files in
> /System/Library/Caches;
>
> drwxr-xr-x  16 root  wheel   544B Dec 16 21:53 .
> drwxr-xr-x  92 root  wheel   3.1K Dec 16 09:31 ..
> drwxr-xr-x   6 root  wheel   204B Dec 15 21:47 com.apple.CVMS
> -rw-r--r--   1 root  wheel    42K Oct  4 21:52
> com.apple.Components2.SystemCache.Components
> -rw-r--r--   1 root  wheel    57K Sep 13 20:49
> com.apple.Components2.SystemCache.QuickTimeComponents
> -rw-r--r--   1 root  wheel   8.6K Dec 16 09:31 com.apple.IntlDataCache.le
> -rw-r--r--   1 root  wheel    78K Dec 16 09:31
> com.apple.IntlDataCache.le.kbdx
> -rw-r--r--   1 root  wheel    21K Dec 16 09:35
> com.apple.app-sandbox-cache.plist
> -rw-r--r--   1 root  wheel    41B Dec 16 09:32 com.apple.bootefisignature
> drwxr-xr-x   3 root  wheel   102B Dec 15 21:36 com.apple.bootstamps
> drwxr-xr-x   2 root  wheel    68B Dec 15 21:36 com.apple.corestorage
> drwx------   3 root  wheel   102B Dec 17 22:30 com.apple.coresymbolicationd
> drwxr-xr-x   4 root  wheel   136B Dec 15 21:36 com.apple.kext.caches
> -rw-r--r--@  1 root  wheel    23K Dec 16 21:53
> com.apple.preferencepanes.systemcache
> -rw-r--r--   1 root  wheel    11K Dec 16 09:35
> com.apple.xpc.extensions.cache
> -rw-r--r--   1 root  wheel   203K Dec 16 09:35 com.apple.xpchelper.cache
>
> I’d like to get rid of directories and files except
> com.apple.IntlDataCche.le and com.apple.IntlDataCche.le.kbdx.
>
> And I did;
>
> setopt extendedglob
> rm -rf -^com.apple.IntlDataCache.*
>
> Then I get zsh: no matches found: -^com.apple.IntlDataCache.le.*
>
> Again my system is
>
> sw_vers
> ProductName:    Mac OS X
> ProductVersion: 10.12.2
> BuildVersion:   16C67
>
> Thanks.
>
> AH
>
> > On Dec 25, 2016, at 4:10 PM, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
> wrote:
> >
> > On Dec 25,  7:22pm, Hoji, Akihiko wrote:
> > }
> > } setopt extended glob
> >
> > If you literally did that, you should have gotten an error message; there
> > is no option named "extended" although there is one named "glob".
> >
> > You can use underscores or hyphens between words (actually, between any
> > two letters) in option names, but not spaces.
> >
> > setopt extendedglob
> > setopt extended_glob
> > setopt extended-glob
> > setopt EX_tend-ed_GLOB
> >
> > } rm -rf -^file.ext.*
> >
> > Is there a space missing there between the second "-" and the "^" ?  Or
> > do the files you want to remove really have names beginning with "-" ?
> >
> > } I would appreciate a poster as to what I am doing wrong.
> >
> > Other than misplaced spacing, you seem to have it; see Gabor's example.
>
>


Messages sorted by: Reverse Date, Date, Thread, Author