Это - по всей вероятности файл, расположенный в /etc/apt/sources.list.d/
каталог. /etc/apt/sources.list.d/
используется несколькими сторонними приложениями для разрешения автоматических обновлений, не имея необходимость изменять /etc/apt/sources.list
. Это, кажется, было добавлено с Кв. 0.6.43 в 2005.
Прокрутите … вниз
Имена файлов
.
и..
всегда игнорируются когдаGLOBIGNORE
установлен и не пустой.
Большую часть времени не желательно включать .
и ..
поскольку подстановочный знак соответствует, так как они не представляют файлы в каталоге — они - взломы, чтобы заставить навигацию каталога работать. На самом деле источник точечных файлов является ошибкой в ранней версии ls
команда. Автор означал исключать .
и ..
из списка, но случайно исключенный все файлы, которые начинаются .
. Таким образом точечные файлы стали скрытыми от ls
. Оболочки следовали примеру путем сокрытия точечных файлов как ls
. Однако способом, которым это было сделано, был снова взлом: начало файлов .
только исключены, если точка не подобрана явно в шаблоне. Так шаблон .*
включает .
и ..
.
Для сохранения совместимости с существующими сценариями современные оболочки все еще включают .
и ..
(кроме zsh, который по этой проблеме как многие другие имеет более нормальное, но не обратно совместимое поведение). Однако, если Вы устанавливаете GLOBIGNORE
, Вы используете определенную для удара функцию, которая показывает, что Вы не интересуетесь обратной совместимостью. Таким образом, сопоставление с образцом изменяется для исключения .
и ..
от всех соответствий шаблона.
Установка GLOBIGNORE=.
исключает файл, который исключен автоматически так или иначе каждый раз, когда GLOBIGNORE
установлен, таким образом, это эквивалентно shopt -s dotglob
за исключением того, что .
и ..
кроме того, исключены из всех шаблонов.
От раздела, наделенного правом "Расширение Пути" в man bash
:
Имена файлов ''.'' и ''..'' всегда игнорируются, когда GLOBIGNORE установлен и не пустой.
GLOBIGNORE
только проигнорируйте.
и..
в шаблонах наклонной черты меньше и GLOBIGNORE фильтрует пути к файлам не имена файлов.GLOBIGNORE=.; echo .*
не будет включать.
ни..
, ноGLOBIGNORE=.; echo ./.*
(илиecho /bin/.*
) будет! Проигнорировать.
и..
от всех шариков похоже, что Вам нужноshopt -s extglob
иGLOBIGNORE='?(*/)@(.|..)'
. – Stéphane Chazelas 06.03.2016, 23:46GLOBIGNORE='?(*/)@(.|..)'
не удался бы исключить.
и..
в.*/foo
.GLOBIGNORE='?(*/)@(.|..)?(/*)'
повредил бы шарики как./*
... – Stéphane Chazelas 07.03.2016, 00:29