Es básicamente lo que dice en la tapa, para ambos.
mves una utilidad estándar para mover uno o más archivos a un objetivo determinado. Se puede usar para cambiar el nombre de un archivo, si solo hay un archivo para mover. Si hay varios, mvsolo funciona si el destino es el directorio y mueve los archivos allí.
Por mv foo barlo tanto, moverá el archivo fooal directorio bar(si existe) o cambiará el nombre fooa bar(si barno existe o no es un directorio). mv foo1 foo2 barsolo moverá ambos archivos al directorio bar, o se quejará si barno es un directorio.
mvllamará a la rename()función de biblioteca C para mover los archivos, y si eso no funciona (se están moviendo a otro sistema de archivos), copiará los archivos y eliminará los originales.
Si todo lo que tiene es mvy desea cambiar el nombre de varios archivos, deberá usar un bucle de shell. Hay una serie de preguntas sobre eso aquí en el sitio, ver por ejemplo este , este , y otros .
Por otro lado, las diversas renameutilidades renombran archivos, individualmente.
El renamede util-linux que menciona hace una simple sustitución de cadena, por ejemplo rename foo bar *, cambiaría foobara barbar, y asdffooa asdfbar. No , no , sin embargo, toma una expresión regular!
La utilidad de cambio de nombre de Perl ( o varias instancias de la misma ) toma una expresión de Perl para transformar los nombres de archivo. Lo más probable es que use un comando, donde el patrón es una expresión regular.s/pattern/replacement/
Tanto el cambio de nombre de util-linux como el cambio de nombre de Perl se pueden usar para mover archivos a otro directorio al mismo tiempo, haciendo los cambios apropiados al nombre del archivo, pero es un poco incómodo. Tampoco hace más que invocar rename()los archivos, por lo que no funciona pasar de un sistema de archivos a otro.
En cuanto a lo renameque tiene, puede depender de su distribución y / o de lo que haya instalado. La mayoría de ellos son compatibles rename --version, así que úsalos para identificar cuál tienes.
type -a renameyrename --version?