The rename command…
Rashkae
ubuntu at tigershaunt.com
Tue Aug 26 14:42:51 UTC 2008
Johnny Rosenberg wrote:
> 2008/8/26 Johnny Rosenberg <gurus.knugum at gmail.com>
>
>> 2008/8/25 Ulf Rompe <Ulf.Rompe at icem.com>
>>
>>> Sorry all for the previous, empty post.
>>>
>>> On Mo, 2008-08-25 at 16:00 +0200, Johnny Rosenberg wrote:
>>>> Since there is a serious bug in Nautilus, that adds the very
>>>> unnecessary text "Link to " to a link created with Ctrl+Shift
>>>> +Drag&Drop,
>>> I don't think it's a serious bug. I would call it bad design. :-)
>>>
>>>> rename -v 's/Link to //' *
>>>>
>>>> However, there doesn't seem to be an option for recursivity built in
>>>> to that command. I am not good with scripts, but I am sure there is a
>>>> way around that.
>>> find . -type l -print0 | xargs -0 rename -v 's/Link to //'
>>>
>>> [x] ulf
>>>
>>> Tack så mycket! Har inte testat än, men det ser ut som en vettigare
>> lösning än den jag lyckades komma fram till via vild sökning på nätet:
>> find . -name "Länk till "* -exec rename -v "s/Länk till //" {} \;
>> My guess is that your solution might be a bit faster. IN my solution, both
>> find and rename look for the same thing, kind of…
>> As everyone can see, I'm a bash beginner but I learn all the time. I think
>> that my new knowledge of xargs will make me able to do things that I
>> couldn't before! Thanks again!
>> J.R.
>>
> Ooops, sorry for the Swedish line there. For a strange reason I changed to
> English after that, I don't really know why… here's the translation for the
> first line anyway:
>
> Thanks! haven't tried it yet, but it makes more sense than the solution I
> came up with after some wild searching on the web:
>
> find… and so on.
>
> By the way, after some more thinking, I combined your solution with mine and
> came up with the following:
>
> find . -type l -exec rename -v "s/Länk till //" {} \;
>
> This way it's all done without piping, at least that is what it looks like.
> It would be interesting to hear from you (and others) about advantages and
> disadvantages with this line compared to other ideas. The only advantage I
> can think of is that it's less to type, but I will make an alias for it
> anyway, so that doesn't matter much, more than my alias file will be a few
> bytes smaller…
>
> Anf I didn't try my last suggestion yet, maybe it doesn't work… ha ha ha
>
That should work.. I can't remember if I also had to esape the { }
characters in bash, or just the ;....
However, the command would be much more efficient if find was only
returning filenames that start with "Link To", they way your command
runs now, *every* file gets passed to rename. This would work, but is
wasteful, since rename then fires up perl and run a regexp that will
only fail.
find . -type l -name "Link to*" -exec rename -v "s/Länk till //" {} \;
More information about the ubuntu-users
mailing list