Чи можу я тримати і .. з. * розширення?


10

Мені часто буває прикро (або гірше), коли я друкую

command .*

в bash і команда застосовується до батьківського каталогу та поточного каталогу. Чи є якийсь варіант оболонки чи інша конфігурація, яку я можу налаштувати, щоб зробити bash виключенням .і ..з розширення .*?

Відповіді:


13

У bash, у такому порядку:

GLOBIGNORE=.
shopt -u dotglob

Коли встановлено GLOBIGNORE,. і .. автоматично ігноруються, тому вам насправді не потрібно встановлювати їх у GLOBIGNORE, але якщо у вас немає нічого іншого, щоб ігнорувати, у вас не буде нічого, щоб його встановити.

Кожен раз, коли ви встановите GLOBIGNORE на ненулеве значення, bash вмикає параметр dotglob, тому вам потрібно буде потім вимкнути його; інакше bash розшириться, *включаючи файли, починаючи з крапки.


Класно, дякую! Я насправді вважав за краще dotglob, щоб налаштування GLOBIGNOREзвучала ідеально.
David Z

Коли GLOBIGNORE встановлено, Bash це ігнорувати .і , ..але не foo/.та foo/... Ви можете скористатися, GLOBIGNORE=.:*/.:*/..щоб зробити цю роботу і з іменами шляху.
користувач123444555621

3

У незнайомій системі, де у мене занадто мало часу для перевірки використовуваних налаштувань (наприклад, GLOBIGNORE), я використовую таку нерозумну схему:

command .??*
  • Швидкий введення та гарантовано виключає .та ..незалежно від навколишнього середовища.

1
Мені завжди подобався такий підхід, але пам’ятайте, що він не відповідає 1-char файлам.a
MestreLion
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.