Elimine todos los files en la carpeta aparte de uno usando la Terminal OS X

Me gustaría eliminar todo el contenido de una carpeta, además de un file. El problema es que no se puede copyr el file a otra carpeta y luego volver a la primera carpeta, porque entonces la aplicación no acepta el file, por lo que el file debe permanecer en la carpeta.

Existe un command como el que describí?

  • Versión del protocolo de alerta tlsv1 cuando se conecta a través de SSL al server OS X
  • Cómo activar la window modal que aparece automáticamente cuando el progtwig necesita tu atención
  • Perfil de inicio del León de montaña
  • Reemplazar una cadena en el nombre del directory usando una variable
  • Cómo restablecer los permissions pnetworkingeterminados
  • Agregar nueva moneda a Yosemite Spotlight
  • El icono del Dock no se actualiza cuando se cambia el file icns en Yosemite
  • ¿Deshabilitar animation para "Deslizar entre aplicaciones de pantalla completa"?
  • Actualización de Snow Leopard a Mountain Lion en un entorno de desarrollo no personal y de gran escala
  • ¿Cómo cancelar la actualización de la tienda Mac?
  • No se puede compartir internet por wireless
  • ¿Qué son los reemploops de Mac OS X para Visio?
  • 2 Solutions collect form web for “Elimine todos los files en la carpeta aparte de uno usando la Terminal OS X”

    Lo haría de esta manera:

    find . ! -name <filename> -delete 

    para que esto funcione con las carpetas, debes replace la delete con una exec rm -r

     find . ! -name <filename> -exec rm -rv {} \; 

    Esto se descompone en

    find = encontrar

    . = en el directory de trabajo actual, puede replace . con una ruta, como ~/Documents/

    ! = no

    -name = nombre

    <filename> = file

    -exec = ejecutar

    rm -rv = verbose remove

    {} = resultados del hallazgo

    \; = cerrar la ejecución

    Encuentre todos los files y carpetas en su carpeta de trabajo, que no tengan el nombre nombre de filename y luego ejecute el command eliminar en los resultados.

    Debes hacer una carrera en seco sin la opción de borrar, primero:

     find . ! -name <filename> 

    Este command le proporciona una list de todos los files y carpetas en su directory de trabajo que no se denominan <filename> . Agregar -delete o -exec rm -rv {} \; , eliminará estos files y carpeta (la versión exec ).


    También podrías usar

     rm -v [^filename] 

    para carpetas add -r

     rm -rv [^filename] 

    De alguna manera me siento más cómodo usando la opción de find . Principalmente porque puedes hacer una carrera en seco. De cualquier manera, comenzaría con una carpeta ficticia y probaría ambas opciones.

    Para estar realmente seguro de esto, puede usar find para crear un script de borrado con commands "rm":

     find . ! -name "<filename>" -exec echo "rm -rf {}" >> /tmp/rm.sh \; 

    Elimine cada línea en el shellscript /tmp/rm.sh que no le guste, luego ejecútelo

     bash /tmp/rm.sh 

    Pero ten cuidado: find también encuentra directorys y "rm -rf" los eliminaría recursivamente también. Reduzca su búsqueda diciéndole a encontrar el tipo de file para search:

     find . ! -name "<filename>" -type <filetype> -exec echo "rm -rf {}" >> /tmp/rm.sh \; 

    ¡Que te diviertas! 🙂

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).