Tengo la desgracia de provenir de un entorno de MS-DOS, pero al menos me hace apreciar lo mucho más poderoso que es Linux. He estado trabajando para que mi Linux-Fu esté a la par, pero hay un par de cosas que podrían hacerse con DOS que no estoy seguro de cómo lograr con más facilidad con Linux:
Cambiar el nombre de varios archivos: usar dos comodines
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
Sé que podría usar find -exec
aquí, pero es posible usar una sintaxis más corta, ¿tal vez mv
con algunas banderas o sintaxis especiales? Supongo que la clave para esto es el segundo *
comodín, ya que Linux no debería tener un problema con el primero (es decir, sé cómo seleccionar los archivos que quiero renombrar usando comodines)
Cambiar el nombre de un solo archivo: uso de un comodín
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Esto sería especialmente útil al renombrar nombres de archivo largos y difíciles de manejar. Pensé que quizás podría usar mv file1.txt $1.bak
para terminar con file1.txt.bak
lo que también sería aceptable, pero no estoy seguro de que pueda hacer referencia al $1
parámetro en línea con un comando de shell. Nuevamente, en este caso particular, es conveniente cómo ms-dos bastardiza el *
comodín para ser utilizado como una especie de coincidencia de captura / reemplazo para parte del nombre de archivo.
Filtrado de listados de directorio con un comodín
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
No estoy seguro de cuál es la sintaxis correcta para hacerlo ls
, o si es posible. Si hice algo así ls t*
, volverá a aparecer en los directorios a partir de t
. Mi solución alternativa ha estado usando find . --max-depth 1 -iname "t*"
o algo así ls -al | grep t
, ninguno de los cuales es tan corto y simple como dir t*
es.
Finalmente, sé que puedo configurar alias para acortar estos comandos largos, pero me gustaría aprender algunos linux-fu listos para usar para hacer estas cosas porque a veces estás conectado a un sistema remoto o estás trabajando En una nueva máquina.
Entonces, ¿cómo puedo mv
y ls
archivos de la misma manera que solía dir
y rename
archivos?