hromadne prejmenovani souboru

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Únor 15 10:38:06 CET 2000


On Tue, 15 Feb 2000, Pavel Kraus wrote:

> find . -exec mv {} /cil/`tr '[:upper:]' '[:lower:]' {}` ;
> 
> ale po tomhle (i ruznych variantach s uvozovkami) dostavam hlasku "missing 
> argument to'-exec'".

asi by to melo koncit \; (jinak strednik sezere shell)

krome toho pouzivate tr blbe

ale stejne to nebude fungovat, protoze by bylo potreba, aby specifikovany
prikaz interpretovalo sh, coz se musi zadat explicitne...asi neco takoveho

find . -exec sh -c
  'mv "$1" `echo "$1" | tr '\''[:upper:]'\'' '\''[:lower:]'\''`' {} \;

jak vidite, je to strasne komplikovane a jeste tam aspon jedny uvozovky
nekde chybi

dalsi problem nastane, kdyz budou prejmenovavany adresare

jak bych to udelal asi takto...

find . -depth | perl -e '
  while (<>) {
    chomp;
    if (m{^(.*/)([^/]*)$}) { $dir = $1; $file = $2; }
    else { $dir = ""; $file = $_; }
    $file =~ tr/A-Z/a-z/;
    rename($_, $dir. $file);
  }
'

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux