Wie andere bereits erwähnt haben, rename
ist gut darin, aber lesen Sie die Manpage (man rename
) bevor Sie es versuchen. Es gibt mindestens zwei völlig unterschiedliche Tools namens rename
und welche Sie haben, hängt von Ihrer Distribution ab. Sie falsch anzurufen kann gefährlich sein.
Hier ist die Manpage für die Perl-basierte Version von Larry Wall, die mit Ubuntu ausgeliefert wird. Sie geben ihm einen Perl-Ausdruck wie rename 's/\.sql$/.php/' *.sql
Hier ist die Manpage für die Umbenennung, die mit älteren Red Hat- und CentOS-Distributionen geliefert wird. Die Verwendung ist eine einfache String-Ersetzung wie rename .sql .php *.sql
Sie könnten auch einen Bash-Einzeiler verwenden, um jede Datei einzeln zu verarbeiten:
$ for f in *.sql; do mv -i "$f" "${f%%.*}.php"; done
Da ist rename(1)
, die keine regulären Ausdrücke verwendet, aber Ihr Problem lösen kann:
rename .sql .php *.sql
Es gibt auch mmv(1)
, aber ich bin nicht damit vertraut, wie es funktioniert.
Guten Tag,
Sie können auch versuchen,
einzugebenfor i in $(\ls -d *.sql)
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
Oder um Regex zu verwenden, ändern Sie es leicht in
for i in $(\ls -d | egrep -e '.*\.sql')
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
für ein bisschen Shell-Programmierspaß. (-: