Удостоверьтесь, что у Вас есть надлежащие кодеки и библиотеки, включая libdbdcss2:
sudo apt-get install libdvdread4
затем
sudo /usr/share/doc/libdvdread4/install-css.sh
Вы хотите что-то подобное:
echo -e "foo\ntouchit\nbar\nbaz" | while read line; do case $line in
touchit) touch test.txt;;
bar) echo bar found;;
esac; done
-121--186711- Просто добавляя к ответу, простой способ сказать свой адрес (ip/domain), это ssh в компьютер, в который можно ssh, exit и затем ssh снова в него. Чаще всего вы увидите приветственное сообщение, например:
"Last login at xx:xxpm from you.domain.com/ip.ad.dre.ss"
-121--31688- Команда imap
в отладках может указать, где находится inode. Пример:
$ debugfs -R 'imap <128901>' /dev/whatever
debugfs 1.42.5 (29-Jul-2012)
Inode 128901 is part of block group 16
located at block 524344, offset 0x0400
Чтобы получить необработанный дамп inode 128901, нужно прочесть 524344 * block _ size + 0x0400
и прочесть inode _ size
байт. Размеры можно получить с помощью команды stats
в debugfs
или отдельной утилиты dumpe2fs
.
stats
или dumpe2fs
также даст вам полный список всех областей inode места хранения, чтобы вы могли построить свою собственную функцию, которая выполняет эквивалент imap
без фактического вызова debugfs
каждый раз (или запуска в интерактивном режиме). Просто помните, когда вы делаете ваш расчет нет inode ноль. inode 1 начинается с байта 0 первого блока inodes.
Если вы хотите сделать это в программе C без внешних программ, вам следует обратиться к библиотеке libext2
, которая используется всеми стандартными утилитами ext2. Я не использовал его сам, но я подозреваю, что с документацией libext2 плюс исходный код отладки использовать в качестве вдохновения, вы можете написать свой собственный imap
-образная функция довольно легко.
... и вот где мне пришло в голову, что, может быть, вы не буквально означает, что вы хотели необработанные данные inode. Возможно, вам нужно содержимое файла, который описывает inode. В таком случае это еще проще. debugfs
имеет для этого встроенную команду:
debugfs -R `cat <128901>` /dev/whatever
печатает содержимое файла с 128901 номером inode.
Я хотел сделать что-то подобное и в итоге использовал debugfs
, аналогичный другому ответу, но использовал следующий (, где моя корневая файловая -система находится на/dev/nvme0n1p4
):
$ debugfs
debugfs: open /dev/nvme0n1p4
debugfs: stat /usr/bin/docker-current
debugfs: inode_dump <9445675> # After getting the inode number from the output above
Вы также можете сделать следующее, что дает тот же результат без ручного поиска inode:
debugfs: inode_dump /usr/bin/docker-current
0000 ed81 0000 2819 f200 e805 ab5d ed28 7d5d ....(......].(}]
0020 be5c 585d 0000 0000 0000 0100 1079 0000 .\X].........y..
0040 0000 0800 0100 0000 0af3 0200 0400 0000 ................
0060 0000 0000 0000 0000 0008 0000 0060 8f02 .............`..
0100 0008 0000 2207 0000 0050 8f02 0000 0000 ...."....P......
0120 0000 0000 0000 0000 0000 0000 0000 0000 ................
0140 0000 0000 76bb 0b93 0000 0000 0000 0000 ....v...........
0160 0000 0000 0000 0000 0000 0000 0000 0000 ................
0200 2000 0000 0025 6ad3 0000 0000 2c57 e8ca ....%j.....,W..
0220 ed28 7d5d 18db 8a5f 0000 0000 0000 0000 .(}]..._........
0240 0000 0000 0000 0000 0000 0000 0000 0000 ................
*