Una de las formas en que renombre rápidamente los archivos en Windows es
F2 > Rename > Tab (to next file) > Rename ...
Pero en Ubuntu / Nautilus, no puedo pasar al siguiente archivo. Pero al estar en Linux, creo que debe haber una alternativa de línea de comando.
Sin embargo, a veces, es posible que desee tener más control sobre cómo cambiar el nombre de archivos específicos. En ese caso, quizás sea mejor poder pasar al siguiente archivo
command-line
rename
Jiew Meng
fuente
fuente
Respuestas:
Yo uso
rename
todo el tiempo. Es bastante simple, pero espero que conozcas expresiones regulares básicas:Esto reemplazará la cadena
SEARCH
conREPLACE
en cada archivo (es decir,*
). El/g
medio global, por lo que si tuviera unSEARCH_SEARCH.jpg
, sería renombradoREPLACE_REPLACE.jpg
. Si no lo hubiera hecho/g
, solo habría hecho una sustitución una vez y, por lo tanto, ahora se nombraríaREPLACE_SEARCH.jpg
. Si desea no distinguir entre mayúsculas y minúsculas, agregue/i
(eso sería,/gi
o/ig
al final).Con expresiones regulares, puedes hacer mucho más.
Tenga en cuenta que este
rename
es el comandoprename
(también conocido como Perlrename
), que admite expresiones regulares completas de Perl. Hay otrorename
que usa patrones y no es tan poderoso.prename
solía instalarse de manera predeterminada en Ubuntu (junto con Perl), pero ahora puede que tenga que hacer:Aquí están algunos ejemplos:
Prefijo
Añadir :
document.pdf
renombrado aMyPrefix_document.pdf
Eliminar :
También puede eliminar cadenas no deseadas. Supongamos que tiene 20 archivos MP3 con el nombre Me gusta
CD RIP 01 Song.mp3
y desea eliminar la parte "RIP CD" y desea eliminarlos de todos ellos con un solo comando.CD RIP 01 Song.mp3
a01 Song.mp3
Observe el espacio extra en
'^CD RIP '
, sin el espacio todos los archivos tendrían un espacio como primer carácter del archivo. También tenga en cuenta que esto funcionará sin el^
carácter, pero coincidiríaCD RIP
en cualquier parte del nombre de archivo. Las^
garantías solo eliminan los caracteres si son el comienzo del archivo.Sufijo
Añadir :
document.pdf
renombrado adocument.pdf_MySuffix
Cambio :
cambiará
Something.pdf
aSomething.doc
. (La razón de la barra diagonal inversa es que.
es un carácter comodín en regexp, por lo que.pdf
coincide,qPDF
mientras que\.pdf
solo coincide con la cadena exacta.pdf
. También es muy importante tener en cuenta que si no está familiarizado con BASH, debe colocar barras diagonales inversas entre comillas. ¡No puede omitir comillas! o utilice comillas dobles, o bash intentará traducirlas. Para bash\.
e"\."
iguales.
. (Pero se utilizan comillas dobles y barras invertidas, por ejemplo, "\ n" para una nueva línea, pero como"\."
no es una secuencia de escape posterior válida, se traduce en.
)En realidad, incluso puede encerrar las partes de la cadena entre comillas en lugar de todo:
's/Search/Replace/g'
es lo mismo ques/'Search'/'Replace'/g
ys/Search/Replace/g
para BASH. Solo debes tener cuidado con los caracteres especiales (y espacios).Sugiero usar la
-n
opción cuando no estés seguro de que tienes las expresiones regulares correctas. Muestra lo que sería renombrado, luego sale sin hacerlo. Por ejemplo:Esto enumerará todos los cambios que habría realizado, si no hubiera puesto la
-n
bandera allí. Si se ve bien, presione Uppara regresar, luego borre-n
y presione Enter(o reemplácelo-v
para generar todos los cambios que realice).Nota : las versiones de Ubuntu anteriores a la 17.04 no se envían
rename
de manera predeterminada, sin embargo, todavía está disponible en los repositorios. Usesudo apt install rename
para instalarlofuente
rename
comando, esto es lo que hice para agregar:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
en su patrón, coincidirá con todas las extensiones de archivo de 3 dígitos en un grupo pasivo. Ejemplo:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Echa un vistazo a esta hoja de trucos regex .Prueba pyrenamer .
No está integrado con nautilus, pero hace el trabajo. Aquí hay una reseña.
Thunar (parte de XFCE) también tiene un renombrador que puede ejecutar por separado.
fuente
Parece que hay un proyecto en el launchpad llamado nautilus-renamer . Puede instalarlo ejecutando
make install
una vez que descargue el script y lo descomprima. Parece que tiene algunas funcionalidades o si sabe algo de programación, podría mejorarla según sus necesidades, ya que es solo un script de Python.fuente
En la línea de comando, para cambiar el nombre de un solo archivo, el comando es simplemente
Si desea hacerlo en lote, probablemente querrá hacerlo a través de un script. Si proporciona más detalles, yo u otra persona probablemente podamos prepararle uno. Dicho esto, un script para agregar cosas a un archivo podría verse así:
Dependiendo exactamente de cómo necesita cambiar el nombre de las cosas, esto probablemente se modificará, por ejemplo, si tiene que seguir reglas específicas de cambio de nombre. (Personalmente, haría esto a través de un script de Perl ya que mi bash-foo no es tan bueno, pero solo soy yo).
Tenga en cuenta que obtuve la separación de nombre de archivo y extensión de una pregunta anterior .
fuente
En caso de que desee hacerlo sin línea de comando, de manera similar a lo que ha estado haciendo en Windows, use la tecla de flecha derecha en lugar de la tecla de tabulación . Esto seleccionará el siguiente archivo tal como lo hace la pestaña en Windows.
fuente
No es realmente la misma pregunta que ¿Cómo puede cambiar el nombre de muchos archivos a la vez? pero voy a sugerir el mismo programa que sugerí en esa respuesta: qmv .
qmv es una herramienta útil del paquete renameutils. Le permite usar su editor de texto favorito para cambiar el nombre de los archivos. Combinado con el poder de vim, tiene una excelente utilidad de cambio de nombre.
Por lo general, lo invoco como
qmv -f do
en el directorio donde quiero cambiar el nombre de un grupo de archivos. O si quiero renombrar recursivamenteqmv -R -f do
.Siempre que necesito cambiar el nombre de varios archivos, siempre recurro a qmv (y vim).
http://www.nongnu.org/renameutils/
fuente
Si la única opción adecuada es renombrar los archivos manualmente, una excelente manera de hacerlo es usar
vidir
(en elmoreutils
paquete):Ejemplos
Renombrar archivos selectivamente
Contenido actual del directorio de trabajo:
Ejecute
vidir
, cambie el nombre de los nombres de archivo en las líneas que contienen los nombres de archivo que desea cambiar de nombre; presione CTRL+ Oy CTRL+ X:Cambiar nombres de archivo selectivamente
Contenido actual del directorio de trabajo:
Contenido actual de los archivos del directorio de trabajo:
Ejecutar
vidir
, cambie los números en las líneas que contienen los nombres de archivo que desea cambiar; presione CTRL+ Oy CTRL+ X:Eliminar archivos selectivamente
Contenido actual del directorio de trabajo:
Ejecute
vidir
, elimine las líneas que contienen los archivos que desea eliminar; presione CTRL+ Oy CTRL+ X:fuente
Estoy usando krename. Es una aplicación GUI. Podía leer etiquetas mp3, etc.
Existe como una aplicación separada, así como una parte de Krusader.
También hay un
rename
script, que forma parte de la instalación estándar de Perl (probablemente lo tenga instalado). Compruébalo conman rename
.fuente