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