Zsh Mailing List Archive
Messages sorted by:
Re: newbie rm --^file question
Got it. Putting a space between “--“ and “-“ did it. I really appreciate your explanation of the different usage of the “--” argument for rm. I though it was specific to zsh like “^”.
> On Dec 25, 2016, at 5:47 PM, Gabor Maghera <gmaghera@xxxxxxxxx> wrote:
> 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:
> 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
> ❯ rm -o
> rm: illegal option -- o
> usage: rm [-f | -i] [-dPRrvW] file ...
> unlink file
> ❯ rm -- -o
> ❯ ls
> bar.ext foo foo.ext
> 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
>> 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
>> -rw-r--r-- 1 root wheel 57K Sep 13 20:49
>> -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
>> -rw-r--r-- 1 root wheel 21K Dec 16 09:35
>> -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
>> -rw-r--r-- 1 root wheel 11K Dec 16 09:35
>> -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
>> ProductName: Mac OS X
>> ProductVersion: 10.12.2
>> BuildVersion: 16C67
>>> On Dec 25, 2016, at 4:10 PM, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
>>> 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: