Portál AbcLinuxu, 12. května 2025 06:03
Ahojte.
Potrebujem premenovat subory ktore sa nachadzaju v podadresaroch ktore maju v nazve medzery.
Prikaz by mal rekurzivne prehladat adresare ktore obsahuju index.fld a subor premenovat na index.bad.
Skusal som:
rename "index.fld" "index.bad" `find . -name 'index.fld'`
find . | sed 's:\(.*\)\.fld:mv "\index.fld" "\index.bad":'|bash
Ani jeden prikaz nejde... Prosim o radu.
dakujem
$ find . -name index.fld -exec rename 's/\.fld$/.bad/' {} \;
nebo (dle verze rename)
$ find . -name index.fld -exec rename .fld .bad {} \;
Pro další inspiraci by se Ti mohlo hodit vlákno: Rekurzivni prejmenovani souboru s mezerou v nazvu na podtrzitka.
find . -path '* *' -name 'index.fld' | while read fname ; do mv $fname ${fname%.fld}.bad ; donePřípadně s rename z Debianu/Ubuntu:
find . -path '* *' -name 'index.fld' -print0 | xargs -0 rename 's/\.fld/.bad/'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.