файлы кошки с каталогом

Первая вещь зарегистрироваться в этой ситуации состоит в том, если диск, от которого Вы пытаетесь загрузиться, является правильным. Упорядочивание дисков может зависеть от многих факторов:

  • В Grub1 Вы только получаете доступ к двум жестким дискам. Это - ограничение интерфейса BIOS. Который два жестких диска, которые Вы на самом деле получаете, зависят от Ваших настроек BIOS (ищите что-то как “порядок загрузки”), и что диски и другие подобные жесткому диску загрузочные медиа (например, Карты флэш-памяти с интерфейсом USB) Вы на самом деле имеете в наличии.

  • В соответствии с Linux, упорядочиванием sda, sdb, и т.д., зависит от порядка, в котором обнаруживаются диски, который во время начальной загрузки часто зависит от порядка, в котором загружаются драйверы. Кроме того, появляются ли некоторые диски как sd? или hd? зависит от параметров конфигурации ядра и udev настроек.

Здесь Личинка сообщает о разделе с типом 7. В то время как Linux и Личинка не заботятся о типах раздела (за исключением “контейнерных” разделов, таких как расширенные разделы), необычно иметь файловую систему Linux на разделе с типом 7 (который fdisk описывает как HPFS/NTFS). Таким образом, мое предположение - то, что, какой бы ни управляют Вашим BIOS, предлагает как второй загрузочный диск (Личинка hd1) не диск, который Вы хотите загрузить, но некоторый другой диск с разделом Windows. Проверьте если hd0 диск, от которого Вы хотите загрузиться; если это не, необходимо будет изменить настройки BIOS.

Если Личинка распознает файловую систему в разделе, можно ввести что-то как cat (hd1,1)/ и нажмите Tab для наблюдения то, что файлы там. Это - обычный способ выяснить, какие файловые системы Вы имеете где, когда Вы чувствуете себя потерянными при подсказке Личинки.


Вторая вещь проверить состояла бы в том, является ли раздел, к которому Вы пытаетесь получить доступ, правильным — количества Grub1 от 0, Linux и количество Grub2 от 1, и необычные ситуации (такие как наличие установки BSD) могут вызвать дальнейшие сложности. Добавление или удаление логических разделов могут заставить существующие разделы быть перенумерованными иногда неинтуитивным способом.

Если у Вас был правильный раздел на правильном диске, то Filesystem type unknown указал бы, что раздел не содержит файловую систему, которую поддерживает Ваша версия Личинки. Grub1 поддерживает файловые системы, наиболее часто используемые Linux (ext2 и более поздние версии, reiserfs, xfs, jfs), но (если у Вас нет недавнего патча), btrfs. Grub1 также не поддерживает LVM или RAID (кроме RAID-1, т.е. зеркального отражения, так как он похож на обычный объем, просто читая).

8
29.08.2012, 02:45
8 ответов
$ for file in ./tmp/*.txt; do echo "$file";  cat "$file"; done

- или -

$ find ./tmp -maxdepth 1 -name "*.txt" -print -exec cat {} \;
3
27.01.2020, 20:08
  • 1
    Первый пример повредится на файлах, которые имеют пробелы. Вы никогда не должны пытаться проанализировать или выполнить итерации по выводу ls: mywiki.wooledge.org/ParsingLs –  jordanm 28.08.2012, 21:48

Вы могли легко записать крошечный сценарий, делающий просто это,

for f in "$@" do; echo "This is from $f"; cat -- "$f"; done
2
27.01.2020, 20:08
  • 1
    Спасибо, но там способ избегать использования сценария - при помощи команды? –   28.08.2012, 18:49
  • 2
    К моему знанию нет такой команды –   28.08.2012, 18:52
  • 3
    Каково практическое различие между сценарием и командой, или, почему имеет значение, что несколько команд вводятся в единственную командную строку для решения проблемы? Команда не должна быть в файле. Можно запустить "скрипт", просто введя в данном тексте. –   28.08.2012, 18:59
  • 4
    Это верно - но я хочу использовать что-то, существовал, см. ответ от "ire_and_curses" и "kbulgrien" –   28.08.2012, 19:14
  • 5
    двуличности, используйте "$@" вместо $*, поскольку первый обработает имена файлов с пробелами (это - часть оболочки POSIX, это не изм удара). Кроме того, cat "$f". контейнеры –  derobert 28.08.2012, 19:37

Так же, как другая идея попробовать tail -n +1 ./tmp/*.txt

==> file1.txt <==
<contents of file1.txt>

==> file2.txt <==
<contents of file2.txt>

==> file3.txt <==
<contents of file3.txt>
14
27.01.2020, 20:08
find . -name '*' -execdir cat '{}' \;

Когда каталог передается cat, Вы будете видеть что-то как:

cat: ./chapter_01: Is a directory

Сразу после, find будет cat содержание того каталога.

1
27.01.2020, 20:08

Не точно, что Вы попросили, но можно снабдить префиксом каждую строку имя файла:

$ grep ^ ./tmp/*.txt
./tmp/f1.txt: this is from f1.txt
./tmp/f1.txt: blaa, blaa, blaa...
./tmp/f1.txt: blaa, blaa, blaa...
./tmp/f2.txt: this is from f2.txt
./tmp/f2.txt: blaa, blaa, blaa...
./tmp/f2.txt: blaa, blaa, blaa...

Будет трудно сделать намного лучше, чем это, не обращаясь к небольшим сценариям.

1
27.01.2020, 20:08
  • 1
    , Который является хорошим обходным решением - мои файлы являются на самом деле одной строкой. –   28.08.2012, 19:19

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

Если Вы хотите исследовать страницы вручную, Вы могли бы использовать 'меньше'. Это даст Вам имя файла в конце каждого файла в формате: 'foo.txt (файл 1 100) (КОНЕЦ) - Затем: bar.txt).

1
27.01.2020, 20:08
grep . *.txt 

Совпадает со всеми строками, а также показывает имена файлов

.
0
27.01.2020, 20:08

Недостаточно очков репутации, чтобы добавить комментарий ко второму ответу

tail -v -n +1 /tmp/*.txt

будет отображать имя файла, даже если имеется только один файл.

3
14.06.2021, 14:17

Теги

Похожие вопросы