Если вы используете OS X, то вы можете быть знакомы с печально известными скрытыми файлами «.DS_Store», которые создаются в результате использования Finder.
Задача состоит в том, чтобы написать код, который пройдет через всю файловую систему и удалит любой файл с именем «.DS_Store».
Классический код гольф - выигрывает самый короткий код.
Разъяснения:
Код не должен удалять любые файлы .DS_Store, которые требуют суперпользователя; предположим, что таких файлов не существует.
Код должен удалять только соответствующие файлы .DS_Store и ничего больше.
code-golf
file-system
arshajii
источник
источник
.DS_Store
также ?Ответы:
зш, 19
(Сделайте это 16, если все в порядке
-f
.)источник
Баш *,
4030Это должно справиться с этим (не очень игра в гольф, не замечательно медленно). Bash кажется правильным, потому что нам не приходится иметь дело с какой-то ерундой "системы импорта". Если вы хотите требовать выполнения в любой среде, добавьте 4 символа дляbash
и 1 для перевода строки.* любая оболочка, я думаю, просто не может выйти из привычки, если предположить, что оболочка Борна снова - единственная.
источник
find
OS X? С GNUfind
еще корочеfind / -name .DS_Store -delete
.bash
4 или более поздней версии сglobstar
опцией оболочки включена, илиzsh
:rm /**/.DS_Store
..DS_Store
каталог, где у меня были важные вещи.Рубин:
3833 персонажаисточник
Dir[...]
это ярлык дляDir.glob(...)
, это сэкономит вам 5 символов.Kernel
. Спасибо, @padde.рыба, 16
(Сделайте это 19, если
-f
требуется удалить.DS_Store
в каталогах только для чтения.)источник
Shell, 25
Требуется рабочая
locate
база данных.источник
Python 3 , 80 байт
Попробуйте онлайн!
Ни в коем случае не конкурентоспособный, но только ради этого :)
источник
CMD, 17
Довольно просто.
/s
требуется также для поиска в подкаталогах."
используется для экранирования/
символа, который в противном случае был бы интерпретирован как (неверный) аргумент.источник
найти, 38
Прежнее
find
решение совершенно неверно: оно означает удаление всего названного,.DS_Store
включая каталог, ссылки, специальный файл и т. Д.Но:
это минимальное использование решения
find
.ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Я настоятельно рекомендую не использовать это решение для реального * nix-бокса: попытка рекурсивного удаления чего-либо
/
- очень плохая идея. Вы предупреждены.РЕДАКТИРОВАТЬ :
Если вам не понятны различия между файлами, каталогами, ссылками (жесткими и символическими), именованными каналами, сокетами, специальными файлами, псевдофайловыми системами, я предлагаю вам воспользоваться некоторыми из этих неизвестных терминов. Вы будете удивлены, мудрее и менее подвержены (катастрофическим) ошибкам.
РЕДАКТИРОВАТЬ 2 : Еще более актуально: ОП написал: «Код должен удалять только соответствующие файлы .DS_Store и ничего больше». Таким образом, если кто-то хочет прочитать скучные требования, все решения, которые удаляют больше, чем эти файлы, выглядят забавно, умно и т. д. но неправильно .
источник
find
решение верное. В вопросе говорится «удалите любой файл с именем« .DS_Store »». Таким образом, нет особых требований, основанных на типе файла.