Відповіді:
У bash, у такому порядку:
GLOBIGNORE=.
shopt -u dotglob
Коли встановлено GLOBIGNORE,. і .. автоматично ігноруються, тому вам насправді не потрібно встановлювати їх у GLOBIGNORE, але якщо у вас немає нічого іншого, щоб ігнорувати, у вас не буде нічого, щоб його встановити.
Кожен раз, коли ви встановите GLOBIGNORE на ненулеве значення, bash вмикає параметр dotglob, тому вам потрібно буде потім вимкнути його; інакше bash розшириться, *включаючи файли, починаючи з крапки.
.і , ..але не foo/.та foo/... Ви можете скористатися, GLOBIGNORE=.:*/.:*/..щоб зробити цю роботу і з іменами шляху.
У незнайомій системі, де у мене занадто мало часу для перевірки використовуваних налаштувань (наприклад, GLOBIGNORE), я використовую таку нерозумну схему:
command .??*
.та ..незалежно від навколишнього середовища..a
dotglob, щоб налаштуванняGLOBIGNOREзвучала ідеально.