Помощь - Поиск - Пользователи - Календарь
Полная версия: Командная строка
Форум «Всё о Паскале» > Системы, Сети, Технологии > ОС и ПО
Искатель
Здравствуйте! У нас появился новый предмет «Операционные системы», и соответственно Лабораторные работы.
Вот попытался было защитить первую Лабу, но завалился на дополнительном вопросе. Преподаватель нарисовал новую схему (book.docx прикрепляю, т.к. не знаю, как тут рисовать) и дал задание – вывести список только тех файлов, находящихся в каталоге 1 (в том числе и сам каталог) , которые имеют имя и расширение одной командой!!!
Если можете, подскажите, как это сделать.
Методичка, которую он нам дал, вообще ни о чем. Она здесь же. Покажу даже саму лабораторку, которую я правильно выполнил по этой методичке.
Lapp
Цитата(Искатель @ 2.05.2011 19:03) *
дал задание – вывести список только тех файлов, находящихся в каталоге 1 (в том числе и сам каталог) , которые имеют имя и расширение одной командой!!!

САМ каталог внутри самого себя НЕ СОДЕРЖИТСЯ. Так кто требование вывести "и его в том числе" - бессмысленно. В нем есть ССЫЛКА на самого себя, которая имеет название "." (точка), но это название не имеет расширения, так что не подходит под условие. Истинное же название каталога (book.doc) принадлежит родительскому каталогу.

То, что сам каталог внутри себя НЕ НАХОДИТСЯ, я могу подтвердить. Попробуй, находясь в этом каталоге, дать команду:
cd book.doc
Система тебе ответит, что каталог с таким именем НЕ НАЙДЕН.
Более того, попробуй СОЗДАТЬ каталог с таким именем в этом каталоге - он создастся без проблем. Но это уже совсем ДРУГОЙ каталог.

Так что требование вывести названия всех файлов каталога и В ТОМ ЧИСЛЕ название самого каталога - бессмысленно. Если условие звучит именно так - ответ простой: условие некорректно. А если ты трактовал условие вольно и допустил ошибку - приведи более точное условие, тогда продолжим разговор.
TarasBer
> Попробуй, находясь в этом каталоге, дать команду:
> cd book.doc
> Система тебе ответит, что каталог с таким именем НЕ НАЙДЕН.

Аргумент притянут за уши.
Попробуй сделать это из корня диска C, то же самое будет. Просто у этого каталога по отношению к каждой папке своё имя.

C:\Documents\book.doc\.
такое же полноценное имя каталога, как и
C:\Documents\book.doc

Другое дело, что да, говорить, что он внутри себя, некорректно.
Lapp
Цитата(TarasBer @ 3.05.2011 10:03) *
Аргумент притянут за уши.
Попробуй сделать это из корня диска C, то же самое будет.
Здрасьте )). И зачем это я буду делать это из корня С? blink.gif
Моя задача была показать, что В ЭТОЙ папке каталога с таким именем нет.
Зачем мне из корня?

Цитата
Просто у этого каталога по отношению к каждой папке своё имя.

C:\Documents\book.doc\.
такое же полноценное имя каталога, как и
C:\Documents\book.doc

Другое дело, что да, говорить, что он внутри себя, некорректно.
Имя одно. Пути разные. Полным именем называют путь от корня + имя. Относительным именем называют относительный путь + имя. Полное имя не бывает равно имени (кроме имени корневого каталога в UNIX). Это разные вещи. Точка (".") - это алиас текущего каталога. Ты можешь поставить сколько угодно \.\.\.\.\. в конце )). Или с ".." еще больше позабавляться )).

У меня тоже много ников (алиасов, кликух, ссылок..) Имя - одно )). И если говорят про Васю, то, конечно, нужно уточнить - про Пупкина или еще какого. Но это не делает его имя никаким другим. Он - Вася )). Из рода (каталога) Пупкиных. А Пупкины в свою очередь могут быть московскими или питерскими или еще какими-то. Ну и так далее.
Искатель
Действительно, может и вправду я трактовал условие вольно и допустил ошибку.
Дело в том, что очень и очень сложно понять что требует преподаватель, который говорит - что пулемёт строчит, да ещё и окончания слов глотает. Жизнь заставила пойти на разного рода ухищрения, и я додумался ходить на лекции с диктофоном.
Вот здесь то, что я смог разобрать из разговора.
А вообще, придется, наверное, завтра переспрашивать его.
Не подскажете в каком учебнике можно найти исчерпывающую информацию по всем командам?
IUnknown
Цитата
в каком учебнике можно найти исчерпывающую информацию по всем командам?
Исчерпывающую информацию лучше всего искать в файлах помощи ОС, которой ты пользуешься. Потому как от версии к версии есть изменения, скажем, в трактовках символов ? и * (в "групповых", т.е., wildcard, символах).
Start -> Help and Support -> (в строке поиска) dir

Если тебя интересует получение списка всех файлов (без директорий) из папки с именем "1", когда ты находишься в корневой папке (т.е., в "Мои документы"), то
F:\My Documents>dir /a:-d .\1\*

выведет тебе такой список... Конкретно - тебе нужен ключик /a, который позволяет отключить листинг файлов с определенными атрибутами.

То, что ты писал выше, было страшнее:
Цитата
вывести список только тех файлов, находящихся в каталоге 1 (в том числе и сам каталог) , которые имеют имя и расширение одной командой!!!
Можно трактовать еще и так: "покажи мне все файлы, которые имеют непустое расширение, а файлы без расширения - не показывай".

У команды dir нет средств, которые могут тебе получить одной командой список всех файлов с расширениями. Без расширения - есть (задается шаблон поиска с точкой в конце, тогда будут найдены все файлы, с пустым расширением, т.е., без оного), а вот с непустым - нету. Если все же надо показать все файлы с расширениями, но не показывать без расширения - я даже не знаю, возможно ли это оной командой.
TarasBer
> У команды dir нет средств, которые могут тебе получить одной командой список всех файлов с расширениями.

А маску *.* применить если?
Искатель
Уважаемый TarasBer! ВЫ - просто гений! Вы первый кто догадался об этом! Дело в том, что мне тут кое кто уже дал подсказку о возможном варианте ответа. Вот: dir /s 1\*.*
Правда я ещё эту команду не опробовал...
Обращаясь к IUnknown, спрошу: выходит что в разных осях команды могут отличаться? Вот у меня, например две оси: ХР и 7.
TarasBer
Я имею в виду, наоборот применить.
IUnknown
Цитата
А маску *.* применить если?
Под XP эта маска покажет и файлы без расширения...
Нажмите для просмотра прикрепленного файла

Цитата
в разных осях команды могут отличаться?
Я не сказал, что команды могут отличаться. Я сказал, что интерпретироваться wildcard-символы могут (и будут) по-разному. Вот тебе еще информация к размышлению:
http://www.computerra.ru/rtfm/gid/system/35795/
Искатель
Кажется до меня дошел смысл задания!!!
Он похоже имел ввиду что, допустим с помощью команд консоли создана структура из папок (приведенная мною выше), а папках с номерами 1, 3 и 5 созданы файлы с указанными расширениями! Вот эти самые файлы и надо вывести так, чтобы одной командой! То что одной командой - это однозначно!
IUnknown
В таком случае используй ключ /s (рекурсивный поиск по подпапкам) + шаблон имени... И, в следующий раз, сначала разбирайся с тем, что нужно сделать, а потом будешь спрашивать, как...
Искатель
Спасибо за интересную статью!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.