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_Store
tambié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 parabash
y 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
find
OS X tiene? Con GNUfind
es aún más corto:find / -name .DS_Store -delete
.bash
4 o más nuevo conglobstar
la opción de cáscara de encendido, ozsh
:rm /**/.DS_Store
..DS_Store
directorio 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
-f
es necesario para eliminar.DS_Store
en directorios de solo lectura).fuente
Shell, 25
Requiere
locate
base 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.
/s
es 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
find
solución anterior es sencillamente incorrecta: significa eliminar todo lo que se.DS_Store
incluye, 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
find
solució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.