Yo haría como este:
find . ! -name <filename> -delete
para este trabajo con carpetas, usted tiene que reemplazar el delete
con un exec rm -r
find . ! -name <filename> -exec rm -rv {} \;
Esta cifra se desglosa en
find
= buscar
.
= en el directorio de trabajo actual, puede reemplazar .
con una ruta de acceso, como ~/Documents/
!
= no
-name
= nombre
<filename>
= archivo
-exec
= ejecutar
rm -rv
= verbose quitar
{}
= resultados de la búsqueda
\;
= cerrar la ejecución
Encontrar todos los archivos y carpetas en la carpeta de trabajo, que no tienen el nombre filename
y, a continuación, ejecutar el comando remove en los resultados.
Usted debe hacer una marcha en seco sin la opción eliminar, en primer lugar:
find . ! -name <filename>
Este comando le da una lista de todos los archivos y carpetas en el directorio de trabajo que no tienen nombre, <filename>
. Añadiendo -delete
o -exec rm -rv {} \;
, se elimina estos archivos y carpetas ( exec
versión).
Usted también podría usar
rm -v [^filename]
para agregar carpetas -r
rm -rv [^filename]
De alguna manera me siento más cómodo el uso de la find
opción. Principalmente porque se puede hacer una marcha en seco. De cualquier manera me gustaría empezar con un maniquí de carpeta y probar ambas opciones.