(2 respuestas)
Cómo eliminar todos los archivos excepto un archivo con nombre de una carpeta específica [duplicado]
(5 respuestas)
Cerrado hace 2 años.
Tengo un directorio que está ocupado por otro usuario y tengo la tarea de mantenerlo. Quiero eliminar todo su contenido excepto 2 archivos con un nombre específico. ¿Es posible con rm
? o debería hacer esto:
cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b
donde aaa
es el directorio, a,b
son los archivos que quiero conservar, y hay (al menos, puede haber) otros archivos/directorios allí.
¿Existe una forma mejor (y más corta)?
Respuesta aceptada:
Con pegotes extendidos de bash, dado
$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir
entonces
rm -rf aaa/!(a|b)
hojas
$ tree aaa
aaa
├── a
└── b
0 directories, 2 files