Ніколи не розбирайте висновок ls
Моя пропозиція полягає у тому, щоб уникнути розбору результатів ls [ 1 ] , навіть більше, якщо вони поєднуються з del
командою. Це з багатьох причин стосується головним чином несподіваних та не звичайних символів, дозволених у імені файлу.
Навіть коли ви очікуєте, що назви файлів, що належать до пакетів Linux, "будуть добре себе вести" , ця проблема все-таки може з'явитися, якщо в цьому каталозі присутні інші файли, але ви цього не знали чи не помічали.
Краще використовувати find
розширення вкладки (почати писати ім’я та натиснути Tab), розширення імені файлу [ 2 ] як *MyKey*
...
Швидке рішення
Оскільки ви хочете вибрати всі пакунки (які закінчуються .deb
) за допомогою "google" всередині, ви можете скласти свій запит за допомогою підстановки *
*google*.deb
і зробити простий
rm -i *google*.deb
що вибере кожне ім'я файлу з "google" посередині, яке закінчиться для .deb
присутнього в поточному каталозі. Опція -i
(інтерактивна) підкаже підтвердження, добра звичка при видаленні файлів з розширенням параметра.
Розчин близько до філософії вашої спроби
Якщо ваша мета побудувати свій шматок командного рядка після частини, так що ви зробили ls
, після того ls | grep google
, і тільки після того, як ви перевірили ваш висновок ви можете виконати його в субоболочке $(...)
з
rm -i $(ls | grep google)
Більш швидкий і небезпечний спосіб [ 3 ] - це використання!!
ls | grep google
rm -i $(!!)
яка виконає останню завершену команду у вашій історії . Ви можете захистити себе від того , що у вас немає візуального контролю лінії , яку ви збираєтеся виконати , якщо ви включили заздалегідь параметри оболонки histverify
з shopt -s histverify
.
rm -i *chrome*.deb