Si usa OS X, entonces podría estar familiarizado con los infames archivos ocultos ".DS_Store" que se producen como resultado de usar Finder.
El desafío es escribir código que recorra todo el sistema de archivos y elimine cualquier archivo llamado ".DS_Store".
Golf de código clásico: gana el código más corto.
Aclaraciones:
El código no necesita eliminar ningún archivo .DS_Store que requiera superusuario; asuma que no existen tales archivos.
El código solo debe eliminar los archivos relevantes .DS_Store y nada más.
code-golf
file-system
arshajii
fuente
fuente

.DS_Storetambién ?Respuestas:
zsh, 19
(Haga ese 16 si está bien dejarlo fuera
-f)fuente
Bash *,
4030Esto debería manejarlo (no muy golfizado, no demasiado fácil de mencionar). Bash parece correcto porque no tenemos que lidiar con ninguna tontería del "sistema de importación". Si desea requerir la ejecución en cualquier entorno, agregue 4 caracteres parabashy 1 para un avance de línea.* cualquier caparazón, supongo, simplemente no puedo dejar el hábito suponiendo que la capa de bourne nuevamente sea la única.
fuente
findOS X tiene? Con GNUfindes aún más corto:find / -name .DS_Store -delete.bash4 o más nuevo conglobstarla opción de cáscara de encendido, ozsh:rm /**/.DS_Store..DS_Storedirectorio donde tenía cosas importantes.Rubí:
3833 caracteresfuente
Dir[...]es un acceso directo paraDir.glob(...), esto le ahorrará 5 caracteres.Kernel. Gracias @padde.pescado, 16
(Haga 19 si
-fes necesario para eliminar.DS_Storeen directorios de solo lectura).fuente
Shell, 25
Requiere
locatebase de datos de trabajo .fuente
Python 3 , 80 bytes
Pruébalo en línea!
De ninguna manera es competitiva, pero solo por eso :)
fuente
CMD, 17
Muy claro.
/ses necesario para buscar dentro de subdirectorios también."se usa para escapar del/carácter que de otro modo se interpretaría como un argumento (no válido).fuente
encontrar, 38
La
findsolución anterior es sencillamente incorrecta: significa eliminar todo lo que se.DS_Storeincluye, incluido el directorio, los enlaces, el archivo especial, etc.Pero:
Es la solución mínima que se utiliza
find.DISCLAMER : Recomiendo encarecidamente no usar realmente esta solución en un cuadro * nix real: tratar de eliminar algo de forma recursiva
/es una muy mala idea. Estás advertidoEDITAR :
Si las diferencias entre archivos, directores, enlaces (rígidos y simbólicos), canalizaciones con nombre, tomas, archivos especiales, sistemas de pseudoarchivos no le resultan claros, le sugiero que busque en Google algunos de estos términos desconocidos. Serás sorpresa, más sabio y menos propenso a errores (catastróficos).
EDIT2 : Aún más relevante: el OP escribió "El código solo debe eliminar los archivos relevantes .DS_Store y nada más". : entonces, si a alguien le importa leer los requisitos aburridos , todas las soluciones que eliminan más que estos archivos son divertidas, inteligentes, etc. pero equivocada .
fuente
findsolución anterior es correcta. La pregunta dice "eliminar cualquier archivo llamado" .DS_Store "". Por lo tanto, no hay requisitos especiales basados en el tipo de archivo.