Автор Гілка: Видалення файлів з винятком?  (Прочитано 4865 раз)

Михайло Даниленко

  • Гість
Re: Видалення файлів з винятком?
« Відповідей #15 : 2008-06-12 16:19:33 »
[isbear:~] for file in *.c ; do ls $file ; done
ls: не вдається отримати доступ до a: No such file or directory
ls: не вдається отримати доступ до b.c: No such file or directory
[isbear:~] ls *.c
a b.c
[isbear:~]

фор-то маскує (точніше зірочка маскує), а от ls чи rm цього не зрозуміють. точніше, при компоновці командного рядку для запуску команди баш не виділить непоквочену змінну у окремий аргумент, й якщо вона містить пробіл, її буде розбито на двa.

Михайло Даниленко

  • Гість
Re: Видалення файлів з винятком?
« Відповідей #16 : 2008-06-12 16:22:05 »
якщо ми говоримо про різні речі - я про лапки навколо [ -f "$a" ] та rm "$a" - в оригіналі їх не було :)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Видалення файлів з винятком?
« Відповідей #17 : 2008-06-12 20:16:54 »
Чи є простий спосіб видалити всі файли у поточній теці типу vasia.*, але не видаляти vasia.vip1 та vasia.sleep4 ?
rm, здається, такого не дозволяє зробити. Можна, звісно, тимчасово перейменувати ці файли, а потім повернути назад. Але може є гарніший спосіб на один рядок?

шось типу rm vasia.* -except vasia.vip1 vasia.sleep4 ?

Є.
Цитата
      GLOBIGNORE
              A  colon-separated  list  of  patterns  defining the set of filenames to be ignored by pathname expansion.  If a
              filename matched by a pathname expansion pattern also matches one of the patterns in GLOBIGNORE, it  is  removed
              from the list of matches.
[Fedora Linux]

Михайло Даниленко

  • Гість
Re: Видалення файлів з винятком?
« Відповідей #18 : 2008-06-12 20:52:16 »
Гм, здається, якщо воно не визначене, використовується якесь стандартне значення, бо коли я встановив його у '*.txt' - ls -d * таки перестало показувати текстові файли, але натомість показало приховані.

Михайло Даниленко

  • Гість
Re: Видалення файлів з винятком?
« Відповідей #19 : 2008-06-12 21:04:28 »
btw,
$ shopt -s extglob
$ rm vasia.!(vip1|sleep4)
P.S. Дякую noddeat та Володимиру Лісівці - поліз у ман, навчився оцим користуватися :)

Відсутній raven

  • Новачок
  • *
  • дописів: 0
  • Карма: +0/-0
  • linux kettle
Re: Видалення файлів з винятком?
« Відповідей #20 : 2008-06-12 21:29:20 »
$ shopt -s extglob
Так нечесно, в мене zsh=) setopt extendedglob