Страница 1 из 1
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 11:35
bass
ребята, только начал изучать bash, в частности групповые операции. возник вопрос: при вводе команды rm libby*.jpg удаляются все libby1.jpg по libby9.jpg, а при вводе touch libby*.jpg создается только одноименный файл. В touch что, групповуха не работает? Или я чего-то не дописал? Спасибо
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 11:39
Dja
bass, а как по-вашему он должен определить сколько вам файлов надо? 01-99? 01-999? 01-9999? 01-9999999999?
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 11:55
bass
Здесь понял. Это значит с квадратными скобками мудрить надо? ща попробую
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 12:01
bass
нифига. touch doc[1-9].txt. эффекта нет. опять одноименный файл
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 12:13
Bill Williamson
bass, а циклами нельзя?
for ((a=1; a <= 9; a++)) touch libby$a.jpg
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 12:43
bass
Да откуда ж мне знать, зя или нельзя? пишу ж, только начал изучать. Я команд-то и десятка не знаю. А те, что знаю - с аргументами еще разбираться. Циклами мне еще никак, рановато
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 13:19
Chocobo
bass,
touch doc{1..9}.txt
Вопрос по работе в терминале
Добавлено: 19 фев 2018, 14:40
bass
Ага, спасибо. О таких скобках в моей литературе не было ничего

Вопрос по работе в терминале
Добавлено: 19 фев 2018, 16:27
slant
bass, для программиста (любого) очень важно запомнить одно из главных правил: компьютер фантазии не имеет, и телепатией не владеет. Отсюда следствие: ни одна команда не может иметь двоякого толкования, с учетом правил используемого языка программирования.
В качестве примера: символ "*" - обозначает в баше "любое количество любых символов". Соответственно может использоваться в "масках" (образцах) для выбора в существующих текстах, но никак не для создания новых - с ним компьютер не будет знать какие именно символы и сколько их нужно. Т.е "cp *.txt" - это на человеческом: скопируй все файлы у которых в начале имени любое количество любых символов а за ними .txt
А "touch *.txt" - на человеческом будет нечто вроде "создать файл с каким-то количеством произвольных символов в начале имени, и заканчивающийся на .txt" - здесь конкретики нету, команда логически неверна.
Так что всегда старайтесь сформулировать и осознать - что именно вы командуете сделать. Если по формулировке возможна двусмысленность - значит команда неверная на 100%.