Очевидне рішення створює вихідний код 1:
bash$ rm -rf .*
rm: cannot remove directory `.'
rm: cannot remove directory `..'
bash$ echo $?
1
Одним з можливих рішень буде пропуск "". та ".." каталогів, але видалятимуть лише файли, імена яких перевищують 3 символи:
bash$ rm -f .??*
Добре, якщо ви не надто переживаєте, що не зможете видалити. & .. то кого це хвилює? якщо ви не турбуєтесь про некрасивий вихід у сценарії, тоді я думаю, що очевидне рішення - це менше вводити текст, ніж інші відверто.
—
Метт
Просто так ви знаєте, .. і. не є файлами. Вони є посиланнями на каталоги. . (лише одна крапка) - це поточний каталог, а .. (дві крапки) - посилання на каталог на один рівень вгору. Наприклад, якщо CD / home / user,. дорівнює / home / user та .. is / home / Іншими словами, ви не можете видалити. і .. (.?)
—
phuzion
Дякую за коментар Метт. Я часто використовую команду в скриптах з перевіркою коду виходу команди (set -e). У цих випадках необхідний орієнтовний код виходу.
—
Йонатан Броза,
Нічого не притаманне. і .. що захищає їх від видалення з rm -rf. Це лише механізм захисту, який додають у сучасних варіантах rm.
—
kubanczyk
І завжди є rm -rf. * || вірно, якщо ви просто хочете обійти задану поведінку -e для цього одного твердження.
—
Домінго Ігнасіо Гальдос