LINUX.ORG.RU

fdisk -l - значения в таблице

 


0

1

Добрый день всем. Сегодня решила разобраться в том как работает утилита fdisk. Использовала утилиту с параметром -l, чтобы узнать как вообще у меня на виртуалке обстоят дела с дисками и решила узнать какую именно информацию она выдает. Что-то понятно, что-то нет. Помогите разобраться в том что означают поля Units = sectors size of 1*512 = 512. Start = 2048 End = 1050623 I/o size



Последнее исправление: hateallpeople (всего исправлений: 1)

fddisk utility, an FDI (integrated Floppy Disk Interface) disk maintenance program, can format a floppy disk

решила

Очевидный жырный тролль очевиден.

anonymous
()
Ответ на: комментарий от anonymous

да камон, нет делаю работу в универ и хочу пояснение каждого заголовка в таблице, чего ты душишь то?

hateallpeople
() автор топика
Ответ на: комментарий от anonymous

Данные об объектах файловой системы и разделах дисков - вот задание. Успокойся

hateallpeople
() автор топика

Units = sectors size of 1*512 = 512.

Единицы измерения (размер сектора).

Start = 2048

Начальный сектор раздела.

End = 1050623

Последний сектор раздела.

I/o size

Размер одного читаемого/записываемого за раз блока при вводе выводе (Input/output).

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

о, спасибо большое! Могу я к Вам обратиться еще по нескольким вопросам попозже?

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

на что система выделяет эти 2048кб памяти?

2048 секторов по 512 байт, т. е. 1024 Кб или 1 Мб. Это просто выравнивание. На самом деле на загрузочном диске необходим загрузочный сектор и 31 Кб. (62 сектора) для загрузчика grub. Поэтому при наличии только mbr и grub достаточно 63 секторов. Но gpt может потребоваться больше. Поэтому выравнивают до 1 Мб.

Могу я к Вам обратиться еще по нескольким вопросам попозже?

Без проблем. Но сейчас уже поздно. Завтра до вечера видимо тоже не будет времени (хотя может и найду). Так что проще создать тему для всех. Меня можно кастануть, указав «@» перед моим именем. Вообще здесь многие глумятся, но многие и отвечают. На первых можно не обращать внимания — это непременный атрибут данного форума.

aureliano15 ★★
()
Ответ на: комментарий от hateallpeople

объекты файловой системы - это только файлы, папки, ссылки?

Правильнее было написать «регулярные файлы, каталоги и жёсткие и символические ссылки».

И ответ — нет, не только. В Unix, включая Linux, файлами называется много чего ещё. Например, все устройства в /dev/ — тоже файлы, но не регулярные, а файлы устройств, которые могут быть блочными и символьными. А ещё есть файловая система /proc, в которой находятся объекты, описывающие работающие в данный момент процессы, и это тоже файлы. И сетевые и локальные (UNIX) сокеты — тоже файлы. А ещё есть каналы. Подробнее можно почитать в https://ru.wikipedia.org/wiki/Типы_файлов_(UNIX) и по ссылкам из этой статьи.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

@aureliano15 В общем. Я так разобралась с регулярными файлами, каталогами, ссылками. Информацию о них можно посмотреть командой ls, но вот остальные объекты. Для них существуют отдельные утилиты и команды или же ls к ним тоже подходит. Я прошу прощения за такие вопросы, но чего-то явного по остальным объектам не нашла ничего и есть ли там вообще что-то такое что уж очень заслуживает внимания?) Именованный канал Специальный файл устройства Сокет Дверь

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

@aureliano15

Кастовать меня нужно только тогда, когда не отвечаешь на моё сообщение, чтоб я получил уведомление. При ответе на моё сообщение я в любом случае его получаю, поэтому кастовать нет необходимости. И, кстати, вы отписались от собственной темы, поэтому если кто-то ответит на верхний пост, вы можете об этом просто не узнать. Чтобы снова подписаться, надо нажать на изображение глаза с подписью «отслеживать».

Я так разобралась с регулярными файлами, каталогами, ссылками. Информацию о них можно посмотреть командой ls, но вот остальные объекты. Для них существуют отдельные утилиты и команды или же ls к ним тоже подходит.

Их тоже можно посмотреть командой ls. Это легко проверить, введя ls -l /dev/, где лежат файлы устройств. Также рекомендую посмотреть каталог /proc и его подкаталоги. И не только командой ls, но и командами для просмотра файлов cat и less. В /proc лежат обычные регулярные файлы и каталоги, но они тоже не совсем обычны, т. к. отображают в файловую систему информацию о запущенных в ней процессах (программах), и на самом деле на жёстком диске эти файлы не хранятся, что можно обнаружить, если загрузиться с флешки, примонтировать диск и посмотреть его (каталог /proc будет пустым).

Подробнее о разных типах файлов в Unix можно прочитать, например, по адресу https://losst.ru/tipy-fajlov-v-linux . Для файлов устройств вместо размера команда ls -l покажет через запятую старший и младший номера устройств. Подробнее о номерах устройств можно посмотреть по ссылке http://dmilvdv.narod.ru/Translate/LDD3/ldd_major_minor_numbers.html . Ну и до кучи про ссылки (не только символические, но и жёсткие) можно посмотреть по адресу https://losst.ru/simvolicheskie-i-zhestkie-ssylki-linux . Если символическая ссылка представляет из себя специальный файл, ссылающийся на другой объект файловой системы, то жёсткая ссылка по сути — имя файлового объекта (или просто «файла», в широком смысле, включающем не только регулярные файлы, но и каталоги и пр.) Если в Windows у каждого файла или каталога может быть только 1 имя и путь (у каталогов, правда, может быть ещё 2 альтернативных имени ., обозначающее текущий каталог, и .., обозначающее родительский каталог), то в Unix и имён, и путей к одному и тому же файлу может быть сколько угодно. Они-то и называются жёсткими ссылками. Физически файл или каталог удаляется только после удаления последней жёсткой ссылки.

есть ли там вообще что-то такое что уж очень заслуживает внимания?) Именованный канал Специальный файл устройства Сокет Дверь

Дверь (door) — это специальный файл в реализации rpc от фирмы Sun. Подробнее о них можно почитать в англоязычном pdf-документе http://www.rampant.org/doors/linux-doors.pdf , но эта тема не очень актуальна. Реализаций RPC и IPC много, и данная реализация — далеко не самая популярная. Всё остальное для администрирования и программирования в Unix и Linux необходимо знать.

aureliano15 ★★
()
Последнее исправление: aureliano15 (всего исправлений: 1)
Ответ на: комментарий от aureliano15

Спасибо за развернутый ответ огромное. Обязательно все просмотрю!)))

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

по поводу ошибки у меня 3-й час ночи, меня уже плавит, вот и ошиблась

Где скриншот с надписью «Привет, Isden!!» на фоне Лор? Нет? Делай.

anonymous
()
Ответ на: комментарий от aureliano15

Здравствуйте еще раз мне нужно удалить файл который был в определенной директории отредактирован последним. Как найти файл разобралась, а вот как при этом условии его удалить? #!/bin/bash printf ‘\n Файлы: \n\n’

ls -lt lab2 printf ‘\n Последний редактируемый файл: \n\n’ find ./lab2 -type f -printf ‘%T+ %f\n’ | sort -r | head -n 1 printf ’\n Удалить его?(y/n): ’ read choise while [[ $choise != «y» && $choise != «n» ]]

do printf ’\n Ошибка введите заново!(y/n): ’ read choise if [[ $choise == «y» ]] then echo «Файл удален» #find ./lab2 -type f -printf ‘%T+ %f\n’ | sort -r | head -n 1 #find /dir/ -mtime +N -exec rm -f {} ; ls lab2 else echo «Файл не был удален» fi done

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

sefi=$(find ./lab2 -type f -printf ‘%f \n’ | sort -r | head -n 1 )#Присвоили переменной строку, которая выводится.

echo $sefi#Для проверки.

find ./lab2 -name «$sefi» -exec rm -f {} ; #-type f -printf ‘%f \n’ #Загвоздка

Вот что есть, но не работает подстановка в аргумент переменной, вроде бы и строка, т.е в переменную все записывает, но как параметр использоваться не хочет. Пишу в ручную - работает.

hateallpeople
() автор топика
Ответ на: комментарий от irton

Дело в том, что если удалять сразу, то удалятся все файлы, ибо «head -n 1» ищет все файлы, но сортирует их по дате и выводит только первую строку. Может я чего-то не знаю.

hateallpeople
() автор топика
Ответ на: комментарий от irton

$ rm DIR/«$(ls -t DIR | head -n 1)»

Подсказали решение. Попытаюсь его

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

find ./lab2 -type f -printf '%f \n'

вроде бы и строка, т.е в переменную все записывает, но как параметр использоваться не хочет. Пишу в ручную - работает.

Потому что между %f и \n стоит пробел, и в переменную записывается не «файл.расширение», а "файл.расширение ". Когда вы вводите команду вручную, видимо, забываете кавычки, в результате чего пробел игнорируется. Т. е. нужно или убрать пробел после %f, или не использовать кавычки (но тогда скрипт начнёт сбоить на именах с пробелами, впрочем, такие имена надо тестировать отдельно, — я сейчас не тестировал). Поэтому 1-й вариант лучше.

Однако команда find ./lab2 -type f -printf ‘%f \n’ | sort -r сортирует файлы по именам, а не по дате/времени, поэтому и исправленный таким образом вариант будет работать неправильно.

Ну и как тут уже сказали, дважды искать файл нет необходимости. Можно написать, например, так:

echo rm -v "$(find ./lab2 -type f -printf '%T+ ' -print | sort -r | head -n 1 | sed -r 's/^[0-9\+:.-]+ //')"

Echo убрать после тщательного тестирования, которого я не проводил. И вообще, прежде чем что либо копипастить себе в командную строку, всегда нужно самостоятельно разобраться, не ошибочный ли и не злонамеренный ли это код. Иначе может получиться как в программа из одной строчки ни Perl (ни в коем случае не запускать оттуда никакой код!) Что и как делает sed, можно изучить самостоятельно. Кстати, это не единственный из возможных вариантов. Вместо sed можно использовать awk или что-то ещё.

И код надо форматировать, используя разметку Markdown или Lorcode — на собственный вкус, выбрав перед отправкой сообщения соответствующий формат (по умолчанию markdown). Иначе разобрать его невозможно, особенно когда строк больше 1.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Дело в том, что мое решение было избранно в связи с тем, что результат нужно поместить в отдельный файл. И тем более с подтверждением. Подтверждение я могу вызвать ключем -i да и результат вывести в отдельный файл не сложно.

$?

можно просмотреть возвращаемое значение «if [ $?=0 ]», но всегда выдается 0. Ибо команда то срабатывает, просто файл не удаляется. Будет 1 только если папка будет пустой(в моем случае). Вот мне и хотелось изначально извернуться и просто запомнить имя файла которого мы удаляем и сделав менюшку небольшую из костылей типо не используя ключ -i все прописать и чтобы при варианте «да» мы могли запомнить имя, удалить файл и вывести результат в отдельном файле. А если нет, то вывести результат о том, что удаление не было совершено. Воооот как-то так

hateallpeople
() автор топика
Ответ на: комментарий от hateallpeople

Ибо команда то срабатывает, просто файл не удаляется. Будет 1 только если папка будет пустой(в моем случае).

Точнее, если удаляемого файла не существует либо если не удалось его удалить (например, из-за отсутствия прав или смонтированной в r/o файловой системы). В случае отказа от удаления ошибки не произошло, поэтому результат будет 0, что логично.

просто запомнить имя файла которого мы удаляем и сделав менюшку небольшую из костылей типо не используя ключ -i все прописать и чтобы при варианте «да» мы могли запомнить имя, удалить файл и вывести результат в отдельном файле

Даже в этом случае ничто не мешает запомнить файл вместе с путём к нему и не повторять поиск. Вообще, повторно выполнять операции, особенно не самые быстрые — всегда плохо и говорит о непродуманности скрипта. Обычно всё можно написать так, чтобы не делать работу повторно.

С другой стороны, вместо read и анализа ответа можно использовать всё тот же rm -i с сохранением стандартного вывода в переменную окружения и анализом этой переменной. Например, как-то так:

rmout=$(rm -vi ./lab2/file.ext)
res=$?
if [ $res -eq 0 ]
  then
     if [ -z "$rmout" ]
       then
         echo "File is not removed"
     else
         echo "$rmout"
     fi
else
  echo "Error $res"
fi

Если сообщение об ошибке тоже надо сохранить, то в файл надо перенаправить поток вывода ошибок 2> file.log либо перенаправить его в стандартный поток вывода 2>&1 и потом обрабатывать и стандартный вывод, и сообщения об ошибках вместе.

Как всё это соединить с find, думаю, догадаться нетрудно.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Если в Windows у каждого файла или каталога может быть только 1 имя и путь

Это неверная информация. Неверен и сам посыл «в Windows»: на FAT со ссылками туговато везде, зато на NTFS раздолье.

bormant ★★★★★
()
Ответ на: комментарий от bormant

Если в Windows у каждого файла или каталога может быть только 1 имя и путь

Это неверная информация.

Да, сейчас посмотрел, — в ntfs тоже есть жёсткие и символические ссылки, хотя там они редко используются, и многие об этом не знают. Как я, например. :-)

Неверен и сам посыл «в Windows»: на FAT со ссылками туговато везде, зато на NTFS раздолье.

А вот с этим не согласен. Сами по себе возможности ф/с без соответствующих api мало полезны. В Unix ссылки были изначально, и изначально были соответствующие api и команды, а все ф/с, ориентированные на Unix, их поддерживали. В Windows же изначально этого не было. И даже если бы кто-то создал драйвер для чтения/записи ф/с ext (а такой драйвер в своё время был, как сейчас — не знаю), то полноценную поддержку ссылок с помощью windows api до версии NT4 реализовать всё равно бы не удалось. Поэтому дело не только в особенностях ф/с, но и в интерфейсах ОС.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Windows же изначально этого не было. И даже если бы кто-то создал драйвер для чтения/записи ф/с ext (а такой драйвер в своё время был, как сейчас — не знаю), то полноценную поддержку ссылок с помощью windows api до версии NT4 реализовать всё равно бы не удалось.

Хардлинки: BackupWrite была в NT 3.51 нет?
И про ioctl, выходит, вы тоже не в курсе, жаль.
К слову, NT 3.51, 4 — 1995, 1996 годы, 25-летней свежести ваши «в Windows нельзя», четверть века как можно ;)

bormant ★★★★★
()
Ответ на: комментарий от bormant

Хардлинки: BackupWrite была в NT 3.51 нет?

А при чём тут BackupWrite? Из-за

The BACKUP_LINK stream type lets you restore files with hard links.

Но в NT 3.51 его могло и не быть. Я не утверждаю, просто читаю в Википедии:

Жёсткие ссылки поддерживаются в файловой системе NTFS (начиная с Windows NT4[1]).

И про ioctl, выходит, вы тоже не в курсе, жаль.

При чём тут ioctl? Есть стандартный api и программы, использующие этот api. И они ничего не знают про какой-то неизвестный параметр ioctl какого-то неизвестного драйвера на какой-то ext2, позволяющий работать с жёсткими и символическими ссылками. Да и про сами ссылки ничего не знают.

К слову, NT 3.51, 4 1995, 1996 годы, 25-летней свежести ваши «в Windows нельзя», четверть века как можно ;)

Так я, кажется, с этим и не спорил, а наоборот написал:

Да, сейчас посмотрел, в ntfs тоже есть жёсткие и символические ссылки, хотя там они редко используются, и многие об этом не знают. Как я, например. :-)

Не согласился я с высказыванием, что де стандартный api ОС не играет никакой роли, а важна исключительно ф/с. Нет! Все ф/с, созданные для Unix, поддерживают ссылки. И поддерживают их именно потому, что это Unix-стандарт. В Windows же это было добавлено позже и не особенно используется. И неважно, когда было добавлено, сколько лет прошло и т. д.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

При чём тут ioctl? Есть стандартный api и программы, использующие этот api.

INT 80h тоже стандартный интерфейс, ничем не лучше ioctl. Если обернуть в отдельные функции, ничего по сути своей не изменится.

Куда-то не туда тема уходит, я пожалуй, устранюсь.

bormant ★★★★★
()
Ответ на: комментарий от bormant

При чём тут ioctl? Есть стандартный api и программы, использующие этот api.

INT 80h тоже стандартный интерфейс, ничем не лучше ioctl.

Я имел в виду не разные способы вызвать одно и то же. Представьте, что вы пишете программу. Программа использует какие-то системные вызовы open(), read(), write() и т. д. Для более редких случаев может вызвать ioctl со стандартным, опять же, аргументом, описанном в манах или в заголовочном файле. И есть какая-то возможность, в принципе не поддерживаемая этим api. Я пишу драйвер и хочу реализовать эту возможность. Для чего задаю номер операции, передаваемый через ioctl. Могу даже создать заголовок с функцией-обёрткой. Но вы-то не адаптируете свою программу под каждый малоизвестный драйвер каждого малоизвестного устройства и не запихиваете в неё функции для поддержки всех возможностей, предоставляемых тем или иным драйвером, предварительно определив, какой конкретно драйвер работает. Вы, как прикладной программист, ориентируетесь на стандартные функции и стандартные команды ioctl, если обращаетесь к этому вызову. И никаких моих наворотов ваша программа использовать не будет. И другие не будут. Конечно, в теории вы можете поддержать нестандартный api моего драйвера. Но я говорю о практике. А она такова, что в той же Windows несмотря на встроенную поддержку ссылок, многим популярным файловым менеджерам для работы с ними требуются плагины, если верить той же википедии. Т. е. мы снова упираемся в традиции и в стандартные api.

Куда-то не туда тема уходит

Согласен.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

А, ладно, все равно тема в сторону ушла - гулять, так гулять!

Насчет того, что хардлинки «не особенно используются в Windows». Начиная с Висты все файлы внутри C:\WINDOWS\WinSxS (самая большая директория винды) представляют собой хард-линки. А большинство исполняемых файлов в system32 - хардинки на файлы в WinSxS. Именно поэтому винда больше не ставится на FAT32 (WinXP ставилась).

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

Возможно. Но это больше касается внутренней кухни Windows. Многие же программы создание ссылок «из коробки» (без плагинов) не поддерживают. И, судя по всему, большинство пользователей об этом не знают. Сужу не только по себе, но и по первым попавшимся статьям, найденным мною в связи с этой возможностью. Во многих в первых же строках написано что-то вроде «недавно узнал про такую штуку, а мужики-то до сих пор не знают…»

На самом деле возможность для меня очень интересная, т. к. я держу фильмы на внешних дисках, отформатированных в ntfs, чтобы можно было их подключать напрямую к телевизору. Но я бы предпочёл упорядочивать их по нескольким критериям. Например, по режиссёрам и одновременно по жанрам, но не делая двух копий. Жёстких ссылок очень не хватало, а теперь оказалось, что они всегда были под носом, просто я о них не знал. :-)

aureliano15 ★★
()
Последнее исправление: aureliano15 (всего исправлений: 1)
14 апреля 2021 г.
Ответ на: комментарий от aureliano15

Доброй ночи, не могу разобраться хоть убей. Найти строку которая удовлетворяет шаблону «/{3/}[а-м]$». Нашла, что «[a-m]» - диапазон букв т.е от «а» до «м». «Знак доллара» означает конец строки, но ни на 1 сайте не написано о «/» - этом слеше в регулярных выражениях. Да и вообще часть шаблона «/{3/}» мне так и осталась непонятна. Поможете?

hateallpeople
() автор топика
Ответ на: комментарий от anonymous

Я могу подскринить, если вы имеете возможность читать на украинском))) и место куда Вам можно скинуть.

hateallpeople
() автор топика
Ответ на: комментарий от anonymous

Доброй ночи, я извиняюсь в том же вопросе про регулярные выражения, мне нужно чтобы строка заканчивалась 3 символами из указанного диапазона. У меня вышло вот так «[a-m]{3}». Да только не знаю куда поставить знак доллара. В общем пример такой

«Условная фраза ааа» или «Условная ааа фраза». Мне нужно чтобы программа отреагировала на 1 вариант

hateallpeople
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.