Так, rm *.xvgбуде видалено лише ті файли, які закінчуються .xvgу вашому поточному каталозі. Ось чому.
Коли ви вводите таку команду, робота розбивається між оболонкою, яку ви використовуєте (припустимо, bash) і бінарною командою.
Ви можете знайти бінарне, ввівши which rm. Ця маленька програма піклується про від’єднання файлів. Такі програми можна запускати з командного рядка і можуть читати список аргументів prog arg1 arg2 arg3під час їх запуску. У разі rmвони трактуються як список повністю кваліфікованих імен файлів, які потрібно видалити. Отже, якщо ви знаходитесь в каталозі, що містить файл foo.bar, введення тексту delete 'foo.*'призведе до rm: foo.*: No such file or directory. Зверніть увагу на одиничні лапки навколо шаблону файлу, вони говорять оболонці передати аргумент оболонці таким, яким він є.
Однак якщо ви введете rm *.barв одному каталозі, він видалить файл. Тут відбувається те, що ваша оболонка, яка є програмою, яку ви використовуєте для введення команд, виконує деякі перетворення, перш ніж передавати аргументи команді. Одне з них називається "розширення імені файлу", інакше його називають "глобальним". Список розширень імені файлів bash можна переглянути тут . Одне з найпоширеніших розширень - *це розширене до назви файлів у поточному каталозі.
Простий спосіб поглянути на глобус на роботі - це використання echo, який виводить назад всі аргументи, передані йому через оболонку. Таким чином, введення echo *в один і той же каталог виведе foo.bar. Отже, коли ви вводите rm *.bar, що насправді відбувається, це те, що оболонка розширює список аргументів на foo.bar, а потім передає це rmкоманді.
Існують деякі способи контролю глобалізації. Наприклад, в останніх версіях bash можна ввімкнути опцію під назвою globstar, яка буде робити рекурсивне розширення. Введення тексту echo **/*.barпокаже список усіх файлів, що закінчуються .barу всіх підпапках. Отже, набравши rm **/*.barbash з включеною глобальною програмою, рекурсивно видалять усі відповідні файли в підпапках.
rm -f {*.xvg,.*.xvg}для видалення також прихованих файлів. Іrm -R -f {*.xvg,.*.xvg}видаляти також каталоги.