Tengo muchos archivos llamados
sequence_1_0001.jpg
sequence_1_0002.jpg
sequence_1_0003.jpg
...
y archivos llamados
sequence_1_0001.hmf
sequence_1_0002.hmf
sequence_1_0003.hmf
...
y archivos llamados
sequence_2_0001.jpg
sequence_2_0002.jpg
sequence_2_0003.jpg
...
y
sequence_2_0001.hmf
sequence_2_0002.hmf
sequence_2_0003.hmf
...
Solo quiero eliminar los archivos que comienzan con 'secuencia_1' y terminan en '.hmf', pero no quiero eliminarlos uno por uno, ya que hay miles de archivos. ¿Cómo puedo especificar al comando rm que deseo eliminar todo lo que comienza con el prefilx 'secuencia_1' y termina en '.hmf'?
Actualmente estoy trabajando con un sistema RedHat Linux, pero también me gustaría saber cómo hacerlo en otras distribuciones.
find
enfoque se vuelve más fácil de adivinar y verificar.Si bien la respuesta de jw013 es correcta wrt globbing, ese comando puede fallar si tiene miles de coincidencias: la línea de comando expandida
rm sequence_1_0001.hmf sequence_1_0002.hmf ...
generada por el shell puede ser simplemente demasiado grande.Como Dom sugirió, también puede usar la
-delete
opción confind
:Ambos
-maxdepth
y-delete
, aunque no están en el estándar POSIX, son bastante comunes enfind
implementaciones en la naturaleza. Las distribuciones de Linux generalmente usan GNUfind
, que ciertamente admite esas opciones.fuente
-delete
debería ser compatible con los sistemas GNU y BSD recientes , mientras que solo-print0
es GNU. Por lo tanto, es probable que sea más portátil también (aunque no debería hacer una diferencia para el OP).funcionaría también en Bash.
fuente
bash
, y la forma de relleno cero necesita la versión 4, creo.