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