zsh-users
 help / color / mirror / code / Atom feed
* How to delete .*.~undo-tree~ files?
@ 2024-06-12 10:04 Denis Bitouzé
  2024-06-12 11:30 ` Marc Chantreux
  0 siblings, 1 reply; 10+ messages in thread
From: Denis Bitouzé @ 2024-06-12 10:04 UTC (permalink / raw)
  To: zsh-users

Hi,

I'm able to delete a given .~undo-tree~ file (created by an Emacs
package):

  ┌────
  │ rm -f .foo.\~undo-tree\~
  └────

But I couldn't find a way to delete in one go all of the them in the
current directory (even more so in subdirectories) .

Thanks for any hint.
-- 
Denis



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 10:04 How to delete .*.~undo-tree~ files? Denis Bitouzé
@ 2024-06-12 11:30 ` Marc Chantreux
  2024-06-12 12:20   ` Denis Bitouzé
  0 siblings, 1 reply; 10+ messages in thread
From: Marc Chantreux @ 2024-06-12 11:30 UTC (permalink / raw)
  To: Denis Bitouzé; +Cc: zsh-users

hello,

>   ┌────
>   │ rm -f .foo.\~undo-tree\~
>   └────

You can also quote things instead of protecting each chars separately.
I have the feeling it's more readable because of the expectations brains
when you used non-bareword langages for years.

 ┌────
 │ rm -f ".foo.~undo-tree~"
 └────

regards,

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 11:30 ` Marc Chantreux
@ 2024-06-12 12:20   ` Denis Bitouzé
  2024-06-12 12:25     ` Andreas Kähäri
  0 siblings, 1 reply; 10+ messages in thread
From: Denis Bitouzé @ 2024-06-12 12:20 UTC (permalink / raw)
  To: zsh-users

Le 12/06/24 à 13h30, Marc Chantreux a écrit :

>>   ┌────
>>   │ rm -f .foo.\~undo-tree\~
>>   └────
>
> You can also quote things instead of protecting each chars separately.
> I have the feeling it's more readable because of the expectations
> brains when you used non-bareword langages for years.
>
>  ┌────
>  │ rm -f ".foo.~undo-tree~"
>  └────

Indeed, thanks!

Anyway:

  ┌────
  │ rm -f ".*.~undo-tree~" 
  └────

doesn't remove in mass all the .*.~undo-tree~ in my current directory.

Regards.
-- 
Denis

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 12:20   ` Denis Bitouzé
@ 2024-06-12 12:25     ` Andreas Kähäri
  2024-06-12 12:50       ` Denis Bitouzé
  2024-06-12 13:11       ` Marc Chantreux
  0 siblings, 2 replies; 10+ messages in thread
From: Andreas Kähäri @ 2024-06-12 12:25 UTC (permalink / raw)
  To: Denis Bitouzé; +Cc: zsh-users

On Wed, Jun 12, 2024 at 02:20:27PM +0200, Denis Bitouzé wrote:
> Le 12/06/24 à 13h30, Marc Chantreux a écrit :
> 
> >>   ┌────
> >>   │ rm -f .foo.\~undo-tree\~
> >>   └────
> >
> > You can also quote things instead of protecting each chars separately.
> > I have the feeling it's more readable because of the expectations
> > brains when you used non-bareword langages for years.
> >
> >  ┌────
> >  │ rm -f ".foo.~undo-tree~"
> >  └────
> 
> Indeed, thanks!
> 
> Anyway:
> 
>   ┌────
>   │ rm -f ".*.~undo-tree~" 
>   └────
> 
> doesn't remove in mass all the .*.~undo-tree~ in my current directory.
> 
> Regards.
> -- 
> Denis

... because a quoted * does not glob anything.

	rm -f .*.'~undo-tree~'

-- 
Andreas (Kusalananda) Kähäri
Uppsala, Sweden

.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 12:25     ` Andreas Kähäri
@ 2024-06-12 12:50       ` Denis Bitouzé
  2024-06-12 17:46         ` Mark J. Reed
  2024-06-12 13:11       ` Marc Chantreux
  1 sibling, 1 reply; 10+ messages in thread
From: Denis Bitouzé @ 2024-06-12 12:50 UTC (permalink / raw)
  To: zsh-users

Le 12/06/24 à 14h25, Andreas Kähäri a écrit :

> ... because a quoted * does not glob anything.
>
> 	rm -f .*.'~undo-tree~'

That did the trick, thanks!
-- 
Denis


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 12:25     ` Andreas Kähäri
  2024-06-12 12:50       ` Denis Bitouzé
@ 2024-06-12 13:11       ` Marc Chantreux
  1 sibling, 0 replies; 10+ messages in thread
From: Marc Chantreux @ 2024-06-12 13:11 UTC (permalink / raw)
  To: Denis Bitouzé, zsh-users

On Wed, Jun 12, 2024 at 02:25:52PM +0200, Andreas Kähäri wrote:
> > doesn't remove in mass all the .*.~undo-tree~ in my current directory.

to be more obvious:

those are equivalent:

	echo ".*.~undo-tree~"
	echo \.\*\.\~\u\n\d\o\-\t\r\e\e\~

regards

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 12:50       ` Denis Bitouzé
@ 2024-06-12 17:46         ` Mark J. Reed
  2024-06-12 18:28           ` Ray Andrews
  0 siblings, 1 reply; 10+ messages in thread
From: Mark J. Reed @ 2024-06-12 17:46 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 1316 bytes --]

The usual trick works - just replace the "foo" with an asterisk while
leaving the rest alone, including the backslashes:

rm -f .*.\~undo-tree\~


As Andreas said, you can also write it like like this:

rm -f .*.'~undo-tree~'


Which ties back into those expectations from other languages that Marc
mentioned. It's important to remember that, unlike in those languages,
quotation marks are not token delimiters in the shell. They don't terminate
the current shell *word* (what other languages would just call a "string");
you can go in and out of quotes, switch kinds of quotes, etc. as often as
you like within a single word.

So .*.'~undo-tree~' is still just one string, even though only part of it
is in quotation marks.  The part in quotes is not subject to glob
expansion; the part not in quotes is.

FWIW, if you want to do the same thing but recursing into subdirectories,
you can use the special recursive glob sequence * ***, as in
 **/.*.'~undo-tree~'

On Wed, Jun 12, 2024 at 9:06 AM Denis Bitouzé <dbitouze@wanadoo.fr> wrote:

> Le 12/06/24 à 14h25, Andreas Kähäri a écrit :
>
> > ... because a quoted * does not glob anything.
> >
> >       rm -f .*.'~undo-tree~'
>
> That did the trick, thanks!
> --
> Denis
>
>

-- 
Mark J. Reed <markjreed@gmail.com>

[-- Attachment #2: Type: text/html, Size: 2299 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 17:46         ` Mark J. Reed
@ 2024-06-12 18:28           ` Ray Andrews
  2024-06-12 18:48             ` Bart Schaefer
  0 siblings, 1 reply; 10+ messages in thread
From: Ray Andrews @ 2024-06-12 18:28 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 858 bytes --]



On 2024-06-12 10:46, Mark J. Reed wrote:
>
> Which ties back into those expectations from other languages that Marc 
> mentioned. It's important to remember that, unlike in those languages, 
> quotation marks are not token delimiters in the shell. They don't 
> terminate the current shell /word/ (what other languages would just 
> call a "string"); you can go in and out of quotes, switch kinds of 
> quotes, etc. as often as you like within a single word.
>
> So .*.'~undo-tree~' is still just one string, even though only part of 
> it is in quotation marks.  The part in quotes is not subject to glob 
> expansion; the part not in quotes is.

Pure curiosity, I have no problem to solve, but supposing you did want 
to break the string up, I suppose you'd have to use an array? Then 
perhaps manipulate the elements/words as desired, then recombine?

[-- Attachment #2: Type: text/html, Size: 1535 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 18:28           ` Ray Andrews
@ 2024-06-12 18:48             ` Bart Schaefer
  2024-06-12 21:13               ` Ray Andrews
  0 siblings, 1 reply; 10+ messages in thread
From: Bart Schaefer @ 2024-06-12 18:48 UTC (permalink / raw)
  To: Ray Andrews; +Cc: zsh-users

On Wed, Jun 12, 2024 at 11:28 AM Ray Andrews <rayandrews@eastlink.ca> wrote:
>
>> On 2024-06-12 10:46, Mark J. Reed wrote:
>>
>> So .*.'~undo-tree~' is still just one string, even though only part of it is in quotation marks.  The part in quotes is not subject to glob expansion; the part not in quotes is.
>
> Pure curiosity, I have no problem to solve, but supposing you did want to break the string up, I suppose you'd have to use an array?  Then perhaps manipulate the elements/words as desired, then recombine?

I'm unclear what you mean by "break the string up".

Placing strings (quoted or not) adjacent to one another in shell is a
straight concatenation, just like separating strings with dot in perl
or plus in Javascript.  Once they're concatenated any quoting is gone
and you just have a single string with no particular rules for how to
break it up again.  You can't recover the original pieces.

So the only way to "break the string up" is never to put it together
in the first place.  Using an array would be one way to do that, but
not necessarily the best way depending on where/how the substrings
originate.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: How to delete .*.~undo-tree~ files?
  2024-06-12 18:48             ` Bart Schaefer
@ 2024-06-12 21:13               ` Ray Andrews
  0 siblings, 0 replies; 10+ messages in thread
From: Ray Andrews @ 2024-06-12 21:13 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 781 bytes --]



On 2024-06-12 11:48, Bart Schaefer wrote:
> So the only way to "break the string up" is never to put it together
> in the first place.  Using an array would be one way to do that, but
> not necessarily the best way depending on where/how the substrings
> originate.
Yeah, that has to be the answer.  If I want to break up "Let me not, 'to 
the m'"arriage of" true minds" into:
Le
te me n
ot, to th
e marriage
  of true minds

... the parts would have to exist separately before concatenation cuz 
once together there's no paper trail back to where the parts came from.  
It's actually a dumb question even tho it's worth asking -- my array 
would have to pre-exist in which case the elements would indeed be 
delimited from each other.  But you can't unscramble the egg.





[-- Attachment #2: Type: text/html, Size: 1502 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-06-12 21:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-12 10:04 How to delete .*.~undo-tree~ files? Denis Bitouzé
2024-06-12 11:30 ` Marc Chantreux
2024-06-12 12:20   ` Denis Bitouzé
2024-06-12 12:25     ` Andreas Kähäri
2024-06-12 12:50       ` Denis Bitouzé
2024-06-12 17:46         ` Mark J. Reed
2024-06-12 18:28           ` Ray Andrews
2024-06-12 18:48             ` Bart Schaefer
2024-06-12 21:13               ` Ray Andrews
2024-06-12 13:11       ` Marc Chantreux

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).