Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Терминал выпонение команд. Взять параметры из файла.  (Прочитано 660 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mamadra

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Знатоки подскажите. Возможно ли терминалу при выполнении команды например "rm" отдать список из файла на удаление этих файлов?

toZen

  • Гость
mamadra, .bashrc aliases?
Только, не просто rm, а rm с каким-нибудь нестандартным значением. 
« Последнее редактирование: 27 Ноября 2016, 19:02:26 от τοΖεη »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
mamadra, в баше так
Код: (bash) [Выделить]
rm `здесь команда которая печатает список файлов`
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
alsoijw, «`команда`» — deprecated, use «$(команда)» form instead! 8)
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн mamadra

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Возможно я не точно описал то что нужно. Пример есть файл deleted в нем по срочно записанное:
home/user/1.txt
user/download/2.*
.....
Могу ли я отдать этот файл команде rm что уудалить именно те файлы путь к которым оэописанн внутри файла?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6723
  • 20% Cooler
    • Просмотр профиля
while read i; do rm "$i"; done < /путь/к.списку.файлов
Обратите внимание!
1. ваш список файлов некорректен. Все абсолютные пути к файлам должны начинаться со слэша /
home/user/1.txt - НЕПРАВИЛЬНО!
/home/user/1.txt - ПРАВИЛЬНО!
2. Все относительные пути работают из каталога, в котором запущен терминал.

PS Прежде чем удалять что-то, посмотрите вывод такой команды
while read i; do echo "rm "$i""; done < /путь/к.списку.файлов и проверьте, нет ли в выводе файлов, которые не надо удалять.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
ALiEN175, зачем столько кода?rm $(cat имя_файла)
user/download/2.*
Файл оканчивается на звёздочку или это шаблон? Если шаблон, то тогда нужно малость модифицировать код.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6723
  • 20% Cooler
    • Просмотр профиля
alsoijw, зато работает без экранирования символов
Код: (text) [Выделить]
~ $ cat dellist
/foo.txt
/bar/foo baz.txt
~ $ rm $(cat dellist)
rm: невозможно удалить '/foo.txt': Нет такого файла или каталога
rm: невозможно удалить '/bar/foo': Нет такого файла или каталога
rm: невозможно удалить 'baz.txt': Нет такого файла или каталога
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

 

Страница сгенерирована за 0.054 секунд. Запросов: 23.