Ніколи не розбирайте висновок 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