Globs вам в помощь: как удалить все файлы кроме одного

Наутилус в Ubuntu

шарики и трубы Unix очень полезны во многих случаях, когда мы работаем с консоли. Вы все использовали каналы или известные символы, такие как подстановочный знак *, для замены имен и т. Д. Ну, конечно, они также столкнулись с проблемой удаления всех файлов в каталоге, кроме одного или нескольких из них. Если их мало - не проблема, это можно легко сделать даже в графическом режиме.

Но если их много, а мы работает с консоли все становится немного сложнее. Но это просто потому, что у нас нет ресурсов, поскольку есть простые варианты, которые мы можем использовать, чтобы помочь нам превратить сложные задачи в нечто очень простое. Что ж, в этом простом уроке мы объясняем, как это сделать, используя простой символ ... Легко, правда? Что ж, приступим к практике:

Прежде всего, я собираюсь представить, что у нас есть каталог называется Photos, в котором мы хотим удалить все файлы изображений .jpeg, которые находятся внутри. Представим, что есть 100 фотографий. И мы хотим удалить их все, кроме одного под названием nat7.jpg. Первый шаг - перейти в этот каталог с помощью команды cd. Например:

cd /home/Fotos

Затем мы будем использовать команду rm, как мы часто делаем, когда хотим удалять что-то, но мы укажем, что хотим стереть все, кроме той фотографии, которую хотим сохранить, для этого мы будем использовать персонажа! такой, что:

rm -f !(nat7.jpg)

Тем самым мы запрещаем удаление для rm, так что он удаляет все, кроме файла с именем nat7.jpg. Если вы зайдете в каталог и сделаете список содержимого, вы сможете убедиться, что все, кроме желаемой фотографии, было удалено:

ls /home/Fotos

Теперь ты можешь поиграть с этим шаром для выполнения других действий, таких как удаление всех файлов в каталоге, кроме файлов MP3 с помощью! (*. mp3) или также сохранение различных файлов или форматов от удаления, например! (nat7.jpg | isa5.jpg) или с помощью! (* .txt | * .mp3). Возможностей много ... Это Unix, это Linux!


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Грегори Рос сказал

    Не бывает дня, чтобы мы чему-то не научились! Несмотря на то, что я возился с ПК около 30 лет и почти 20 лет с Linux, я не очень привязан к консоли, я признаю, что она чрезвычайно полезна, но я всегда был ленив, когда дело доходило до запоминания команд и отпраздновать переход в графический режим. Я совершенно не знал этого варианта шаров, и хотя мне было несложно выжить без него, следует признать, что он выглядит очень полезным и практичным, кроме того, его легко понять и применить. Я хорошо помню.
    Спасибо за ваш вклад, который, я не сомневаюсь, будет очень полезным.

  2.   9acca9 сказал

    Эй.
    Большое спасибо, но ...
    rm -f! (*. exe)
    bash:!: событие не найдено

    1.    Исаак ЧП сказал

      Привет,

      Попробуйте активировать это:

      shopt -s extglob; установить -H

      А потом попробуйте еще раз:

      rm -f! (*. exe)

      Всего наилучшего! Надеюсь, у вас это сработает. И спасибо, что подписались на нас ...

  3.   Мигель сказал

    Здравствуйте, у меня есть вопрос, мне не удалось сохранить два файла одновременно, потому что, когда я пытаюсь, все удаляется, но когда я делаю это только с одним, я могу. что это может быть? Как это решить?