Ошибка при получении информации о файле linux

pc-error-logo Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода. Неожиданная ошибка: Ошибка при получении информации о файле «X.txt»: Ошибка ввода/вывода

Опишем окружение в котором возникла ошибка ввода/вывода:

  • ОС: Linux совместно с Windows
  • HDD: два диска, на одном Windows XP (далее ДИСК 1), на другом Linux Debian 7.x (далее ДИСК 2)

Каждый диск разбит на два раздела, — на диске с Windows XP два раздела с файловой системой NTFS, на втором диске с Linux Debian 7.x один раздел EXT4, на котором и установлен Linux, а на втором собственно NTFS. Окружением для рабочего стола Linux было выбрано Xfce, файловый менеджер по умолчанию Thunar 1.2.3 (Thunar это быстрый и простой в использовании файловый менеджер для рабочего окружения Xfce.), текстовый редактор gedit.

Ошибка ввода/вывода появилась на ДИСК 2 в разделе с файловой системой NTFS, который монтировался вручную после входа в уч. запись Linux.

Когда именно появилась Ошибка ввода/вывода на NTFS разделе сказать сложно, но предположительно после очередного переключения между ОС. На ДИСК 2 были расположены совместно редактируемые файлы, — т.е. эти фалы (Test.txt один из них) были открыты в текстовом редакторе notepad++ под ОС Windows XP и в текстовом редакторе gedit под Linux Debian 7.x. Перед переключением между ОС каждая ОС переводилась в спящий режим с сохранением запущенных программ и открытых файлов.

Иногда выполнялась перезагрузка ОС Linux Debian 7.x, но ОС Windows XP всегда переводилась в спящий режим, при этом после перезагрузки Linux Debian 7.x восстанавливалась сессия запущенных на момент перезагрузки/выключения программ, в том числе и редактора gedit с совместно редактируемым Test.txt. Потому как раздел NTFS с ДИСК 2 монтировался вручную, то после перезагрузки в gedit был открыт Test.txt с сообщением об ошибке доступа, но после ручного монтирования NTFS раздела редактор gedit предлагал обновить файл по причине его изменения.

Не скажу, как и почему стала появляться Ошибка ввода/вывода, — возможно gedit попутал uid/gid (файловые/индексные дескрипторы) и при сохранении в Master File Table (MFT) прописал не то, не тем и не туда, но вот, что получилось после очередного переключения между ОС при совместном редактировании файлов:

Попытка открыть каталог «/media/SATA2/PROFILE/User/Рабочий стол» в Thunar:

Не удалось открыть папку: «Рабочий стол».
 
Ошибка при получении информации о файле «/media/SATA2/PROFILE/User/Рабочий 
    стол/Test.txt»: Ошибка ввода/вывода.

Остальное содержимое каталога было не доступно для просмотра/редактирования

Попытка сохранить уже открытый в gedit текстовый файл Test.txt:

Не удалось сохранить файл /media/SATA2/PROFILE/Use…бочий стол/Test.txt.
 
Неожиданная ошибка: Ошибка при получении информации о файле «/media/SATA2/ 
    PROFILE/User/Рабочий стол/Test.txt»: Ошибка ввода/вывода

При использовании файлового менеджера NAUTILUS удалось открыть каталог /media/SATA2/PROFILE/User/Рабочий стол и удалить «Test.txt«, но вот создать заново Test.txt или создать «Безымянный документ» и переименовать его в «Test.txt» не удалось:

Не удалось переименовать объект.
 
Не удалось переименовать объект «Безымянный документ» в «Test.txt»: Произошла 
    ошибка при переименовании файла: Ошибка ввода/вывода

Следующий глюк сопутствовал Ошибкам ввода/вывода, но вот при каких условиях возник не припомню (вероятно при нескольких одновременных попытках монтирования):

Не удалось подключить «SATA2».
 
DBus error org.gtk.Private.RemoteVolumeMonitor.Failed: An operation is already 
    pending.

Владелец и права на файл Test.txt не известны:

root@linux:/media/SATA2/PROFILE/User/Рабочий стол# ls -la
ls: невозможно получить доступ к Test.txt: Ошибка ввода/вывода
итого 4415
drwx------ 1 User User   12288 Сен  2 22:21 .
drwx------ 1 User User    8192 Авг 18 07:48 ..
-rw------- 1 User User    1830 Сен  2 11:56 Test_2.txt
-rw------- 1 User User    3722 Сен  2 21:22 Test_3.txt
-????????? ? ?      ?            ?            ? Test.txt

В некоторых манах для лечения предлагалось использовать ntfsfix -b /dev/sdb5, предварительно отмонтировав его, — но проблема не решилась…

В среде Linux на ДИСК 2 были созданы текстовые файлы «Test_2.txt» и «Test_3.txt» и совершено переключение на Windows XP где эти файлы были не доступны даже для просмотра, хотя после перехода обратно в Linux их можно было просматривать и редактировать…

Проблему с косяком в NTFS разделе на ДИСК 2 удалось решить только с помощью стандартного средства проверки дисков входящего в ОС Windows XP в процессе перезагрузки:

CHKDSK is verifyng indexes (stage 2 of 5)
 
    Deleting index entry .Trash-1000 in index $I30 of file 5
    Deleting index entry Test.txt in index $I30 of file 702196
    Deleting index entry Test_2.txt in index $I30 of file 702196
    Deleting index entry Test_3.txt in index $I30 of file 702196

Увидев на экране Deleting index entry … я зразу же понял, что этих файлов нам уже не видать как своих ушей, — разумеется, так и есть.

Вероятно (http://ru.wikipedia.org/wiki/NTFS#Linux) поддержка NTFS в Linux осуществляется при помощи ntfsmount (использующая FUSE), которая позволяет монтировать NTFS-разделы на запись, но с некоторыми ограничениями.

Существует также ещё один способ монтирования NTFS с возможностью чтения/записи, — это Проект NTFS-3G, который по заявлениям является более функциональным и стабильным вариантом (также использующий FUSE) дающий более широкие возможности по созданию/изменению/удалению/перемещению файлов (исключая сжатые и зашифрованные файлы) в файловой системе NTFS. В тоже время тесты показывают, что NTFS-3G не оптимизирован для производительности, а разработчики заявляют, что это связано с обеспечением повышенной надёжности и, что производительность является второстепенной задачей.

Никто не застрахован от возникновения каких-то ошибок на разделах с файловой системой NTFS или же вовсе полного краха таких разделов с необходимостью полного форматирования. Поэтому, при использовании Linux лучше вовсе не использовать NTFS разделов, или же использовать их как можно реже.

Основные причины ошибок ввода/вывода

  • Значит это всё масонский заговор дядюшки Билла… На буржуйских веб-ресурсах бродит информация о том, что стандарт NTFS меняется в каждой новой версии Windows, что вполне предсказуемо, включая сервис-паки и промежуточные патчи. При этом, разумеется, изменения не придаются общественной огласке, а следовательно нет возможности в полной мере обеспечить стабильную работу с NTFS в свободных ОС таких как Linux.
  • Отмечено также, что на разделах NTFS возможно изменение уже существующих файлов с незначительным изменением их размера, но при создании новых файлов или существенного изменения уже существующих может вызвать проблемы и даже «запороть» весь раздел.
  • Проблемы с отображением созданных в Linux на NTFS разделе файлов, а также проблемы с ошибками ввода/вывода, могут возникнуть если на ПК установлено несколько ОС (ака Мультизагрузка, Multi-boot), — Windows vs Linux. Пик ошибок ввода/вывода отмечен когда Windows была переведена в спящий режим, а после очередного включения запущен Linux из-под которого на NTFS разделе создавались/редактировались файлы. Другими словами если мы хотим из-под ОС Linux, в условиях мультизагрузки (Multi-boot), относительно безопасно создавать/редактировать файлы на NTFS разделах совместно используемых обеими ОС, то перед запуском ОС Linux мы должны выполнить полную перезагрузку или остановку ОС Windows, но не в коем случае не переводить Windows в спящий режим!
  • SRT-кэширование (Smart Response Technology) — ещё одна «фича», которая может стать причиной невидимости из-под Windows на NTFS разделах файлов, которые создавались в Linux. Предположительно Linux не поддерживает SRT-кэширование (касается только SSD дисков), которое поддерживает Windows, а значит при создании из-под Linux-а файлов на SSD дисках с активным SRT-кэширование кэш не обновляется и после загрузки Windows файлов не обнаруживается. Предлагается отключить SRT-кэширование для SSD диска.

Тема использования NTFS в Linux является довольно актуальной, требует более подробного изучения и дополнительных экспериментов. О появлении новых багов, в ходе использования NTFS разделов в Linux, и, способов их решения, — будем дописывать в этой же статье…


0

1

Приветсвую, подключил внешний HDD, скопировал на него папку с фотками, потом этот диск сам отключился. При попытке открыть его снова выдаёт ошибку:

Не удалось открыть папку: «Новый том».

Произошла ошибка при получении сведений о файле «/media/Новый том/Fedora-14-i686-Live-LXDE.iso»: Ошибка ввода/вывода.

Потом попытался открыть в консоли, вот что показало(красным выделял я):
http://www.imagepost.ru/?v=ekrana_-_08.04.2012.png
Удалить эти файлы не даёт.
Это чё такое, чё ему надо? Дистр: Simply Linux 6.0.1

Ща попробую под каким нибудь live-cd подключить, посмотреть.

Содержание

  1. Подключил внешний диск, это чё такое?
  2. Как использовать команду fsck для исправления ошибок файловой системы в Linux
  3. Когда использовать fsck в Linux
  4. Опции программы fsck
  5. Как запустить fsck для исправления ошибок файловой системы Linux
  6. Понимание кодов выхода fsck
  7. Как исправить ошибки файловой системы Linux
  8. Как запустить fsck на корневом разделе Linux
  9. Как принудительно проверить диск с помощью fsck при загрузке системы
  10. Как запустить fsck в режиме восстановления
  11. Заключение
  12. Ошибка при копировании файлов.
  13. Linux и NTFS: Ошибка ввода/вывода
  14. Основные причины ошибок ввода/вывода
  15. Рекомендуемый контент
  16. Linux вывод ошибок в файл
  17. Как работает перенаправление ввода вывода
  18. Перенаправить вывод в файл
  19. Перенаправить ошибки в файл
  20. Перенаправить стандартный вывод и ошибки в файл
  21. Стандартный ввод из файла
  22. Использование тоннелей
  23. Выводы
  24. Стандартный ввод
  25. Пример
  26. Стандартный вывод
  27. Пример
  28. Стандартная ошибка
  29. Пример
  30. Пример
  31. Каналы
  32. Пример
  33. Пример
  34. Фильтры
  35. Пример
  36. Пример

Подключил внешний диск, это чё такое?

Приветсвую, подключил внешний HDD, скопировал на него папку с фотками, потом этот диск сам отключился. При попытке открыть его снова выдаёт ошибку:

Потом попытался открыть в консоли, вот что показало(красным выделял я): http://www.imagepost.ru/?v=ekrana_-_08.04.2012.png Удалить эти файлы не даёт. Это чё такое, чё ему надо? Дистр: Simply Linux 6.0.1

Ща попробую под каким нибудь live-cd подключить, посмотреть.

51665: 1424570346

Качал на работе файлы и выдернул диск без отмонтирования? Поздравляю, чо.

43484: 605269286

75715:1807475321

А что за файловая система хоть?

49912:1163776537

Можно попробовать через photorec восстановить.

p

федору с флешки ставил? проверь записи в fstab

не исключено что у тебя /dev/sdb1 там в /media/cdrom записан, udisks плющит

p

ой у тебя симплилинукс, проморгал

p

А причём здесь iso, не понял?

51665: 1424570346

Сейчас установил Fedora 16, подключил этот диск в ней. В консоли ситуация такая же (http://www.imagepost.ru/?v=screenshot2_5.png), а если открыть диск в файловом менеджере(nautilus), то там вообще ситуация интересная. На диске была папка from_ubuntu. Так вот, теперь эта папка стала «корнем» диска, т.е выше from_ubuntu не подняться http://www.imagepost.ru/?v=screenshot1_6.png О_о.

P.S. Это мой «домашний» переносной диск, использую его для хранения всякого барахла, фоток, документов и т.д.

48319: 1039951524

Я тред не читал, мб уже и сказали все, но там судя по всему трабла в том, что ты либо не докачав и не отмонтировав диск вытащил его из компа.

48319: 1039951524

* «либо» лишнее, я и без него в мысли обошелся.

51665: 1424570346

И удалить эти файлы не даёт, вот засада 🙁

ты уже попрощался с барахлом-то?
всегда отмонтируй диски перед извлечением. (к флешкам тоже относится)

51665: 1424570346

Сейчас сижу и вспоминаю, выдёргивал я диск или нет, почему-то мне не вспоминается чтобы я его выдёргивал(ушёл в глубину размышлений) 🙁

54109: 2054175765

Ищите Windows и проводите проверку файловой системы. С файлами можно попрощаться.

Перед этим можно попробовать помучать testdisk, он умеет чинить ntfs

75404: 507664648

Ты так и не написал, что за файловая система.

48319: 1039951524

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

75404: 507664648

>> Ищите Windows и проводите проверку файловой системы. С файлами можно попрощаться.

Перед этим можно попробовать помучать testdisk, он умеет чинить ntfs

Либо R-Studio for Linux v. 4.

51665: 1424570346

p

И никто не вспомнил fsck? ПОзорища!

48319: 1039951524

ТСу мб он и поможет, а вот я на рабочем бэкапном винте не рискнул. Лучше пусть там будет этот файл, чем грохнуть весь винт.

Кстати, кроме фсцк еще чекдиск виндовый может вылечить (когда-то давно вроде мне помогло). Для этого даже винду не обязательно держать, можно скачать Hiren’s Boot CD и снего чекдиском прогнать винт.

51665: 1424570346

Решил, подёргаю всё более-менее ценное с этого винта на тот что в компе, а этот потом отформатирую.

p

1928: 1960774052

Я однажды (правда, уже лет 12 тому назад :D) по горячему, забыв отмонтировать, выдернул один диск из мобил-рэка и воткнул другой, другого типа и геометрии. И сразу начал писать. Выматерилось. Потом выматерился я. Отмонтировал, примонтировал. На втором диске читаются каталоги первого диска. Файлы не открываются. Подумал, что можно с ними прощаться. Прогнал chkdsk. Всё вернулось и даже ничего не пропало 🙂

Это, кажется, единственный казус с NTFS в моей практике. Больше ни разу за много лет не было проблем.

Вот даже ext3 однажды умерла без всяких видимых причин и сразу целиком. Плюс ряд проблем с пропажей файлов при потере питания. Глючили ReisreFS, ext4, xfs… А вот с NTFS — везло, что ли…? 🙂

49912:1163776537

Это, кажется, единственный казус с NTFS в моей практике. Больше ни разу за много лет не было проблем.

У меня тоже был 1 казус с NTFS. Взял и умер WINDOWSsystem32configsystem. Тогда я только знал, что в нём хранится и как запускать консоль восстановления Windows XP, так что расследовать ситуацию не удалось, зато пришлось переустанавливать все драйвера. Точно помню, что ничего до этого с ним не делал. Возможно, ФС не виновата.

Источник

Как использовать команду fsck для исправления ошибок файловой системы в Linux

Файловые системы отвечают за организацию хранения и восстановления данных. Так или иначе, со временем файловая система может быть повреждена, и некоторые её части могут оказаться недоступными. Если ваша файловая система обнаруживает такую несогласованность, рекомендуется проверить её целостность.

Это можно сделать с помощью системной утилиты fsck (проверка целостности файловой системы). Эта проверка может выполняться автоматически во время загрузки или запускаться вручную.

В этой статье мы рассмотрим утилиту fsck и её использование, чтобы помочь вам исправить ошибки диска.

Когда использовать fsck в Linux

Есть разные сценарии, когда вы захотите запустить fsck. Вот несколько примеров:

Опции программы fsck

Команду fsck необходимо запускать с привилегиями суперпользователя или root. Вы можете использовать её с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:

Как запустить fsck для исправления ошибок файловой системы Linux

Чтобы запустить fsck, вам нужно убедиться, что раздел, который вы собираетесь проверить, не смонтирован. Для целей этой статьи я буду использовать свой второй диск /dev/sda, смонтированный в /mnt/disk_d.

Вот что произойдёт, если я попытаюсь запустить fsck, когда раздел смонтирован.

fsck

Если диск не только смонтирован, но и используется (например, диск, смонтированный в корневую файловую систему), то ошибка будет «/dev/nvme0n1 is in use».

Чтобы избежать этого, отключите раздел с помощью следующей команды (замените имя диска на ваше):

Тогда можно будет безопасно запускать fsck.

fsck 2

Понимание кодов выхода fsck

После запуска fsck он вернёт код выхода. Эти коды можно увидеть в руководстве по fsck, запустив:

Описание кодов выхода fsck:

Как исправить ошибки файловой системы Linux

Иногда в файловой системе может быть обнаружено более одной ошибки. В таких случаях вы можете захотеть, чтобы fsck автоматически пытался исправить ошибки. Это можно сделать с помощью:

Флаг -y означает автоматически отвечать «да» на любые запросы от fsck для исправления ошибки.

Точно так же вы можете запустить то же самое во всех файловых системах (с пропуском корневой файловой системы):

Как запустить fsck на корневом разделе Linux

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

Мы рассмотрим обе ситуации.

Как принудительно проверить диск с помощью fsck при загрузке системы

Это относительно легко выполнить, единственное, что вам нужно сделать, это создать файл с именем forcefsck в корневом разделе вашей системы. Используйте следующую команду:

Затем вы можете просто принудительно перезагрузить или запланировать перезагрузку системы. Во время следующей загрузки будет выполнена проверка диска командой fsck. Если время простоя критично, рекомендуется тщательно его спланировать, поскольку, если в вашей системе много используемых inode, выполнение fsck может занять дополнительное время.

После загрузки системы проверьте, существует ли ещё файл:

Если это так, вы можете удалить его, чтобы избежать появления fsck при каждой загрузке системы.

Как запустить fsck в режиме восстановления

Для запуска fsck в режиме восстановления требуется ещё несколько шагов. Сначала подготовьте вашу систему к перезагрузке. Остановите все критически важные службы, такие как MySQL/MariaDB и т. д., а затем введите.

Во время загрузки удерживайте нажатой клавишу Shift, чтобы отобразилось меню grub. Выберите Advanced options («Дополнительные параметры»).

Grub Advance Options

Затем выберите Recovery mode («Режим восстановления»).

Select Linux Recovery Mode

В следующем меню выберите «fsck».

Select fsck Utility

Вас спросят, хотите ли вы перемонтировать / файловую систему. Выберите Yes («да»).

Confirm Root Filesystem

Вы должны увидеть нечто подобное.

Running fsck Filesystem Check

Затем вы можете вернуться к нормальной загрузке, выбрав Resume («Возобновить»).

Select Normal Boot

Заключение

В этом руководстве вы узнали, как использовать fsck и выполнять проверки согласованности в разных файловых системах Linux. Если у вас есть какие-либо вопросы о fsck, не стесняйтесь задавать их в разделе комментариев ниже.

Источник

Ошибка при копировании файлов.

Здравствуйте, гуру! проблема: не могу скопировать любой файл с рабочего стола в дом.директорию. Например, текстовый файл. Пишет: ошибка.Так же, с домашней директории не могу скопировать на раб.стол. Как лечить проблему? Спасибо! Xfce4, Debian 7.05

116664:1705830842

116664:1705830842

116664:1705830842

Ошибка при получении информации о файле «/home/alex/Рабочий стол/Создать файл »: Нет такого файла или каталога

116664:1705830842

116664:1705830842

Для тех кто в танке: система писала и о правах, что их не достаточно.

p

Какие права у домашнего каталога?

116664:1705830842

p

Владелец и группа правильные?

116664:1705830842

Да, никого из «левых» 🙂 drwxr-xr-x 41 alex alex 4096 Май 8 17:03 alex

65339: 1072106970

114054:1615476870

Ну ясно написано что нет такого файла. Кстати рпбочий стол может называться desktop.

116664:1705830842

Так я этот файл сам создал, как это нет?

p

Из консоли cp работает? Место свободное на диске есть?

116664:1705830842

Нормальные ОСи работают в любом положении, хоть лежа хоть к верх ногами. Сохранять на рабочем столе файл концепция nix* запрещает?

116664:1705830842

Источник

Linux и NTFS: Ошибка ввода/вывода

Опишем окружение в котором возникла ошибка ввода/вывода:

Ошибка ввода/вывода появилась на ДИСК 2 в разделе с файловой системой NTFS, который монтировался вручную после входа в уч. запись Linux.

Попытка открыть каталог » /media/SATA2/PROFILE/User/Рабочий стол » в Thunar:

Остальное содержимое каталога было не доступно для просмотра/редактирования

Попытка сохранить уже открытый в gedit текстовый файл Test.txt :

При использовании файлового менеджера NAUTILUS удалось открыть каталог /media/SATA2/PROFILE/User/Рабочий стол и удалить » Test.txt «, но вот создать заново Test.txt или создать «Безымянный документ» и переименовать его в «Test.txt» не удалось:

Следующий глюк сопутствовал Ошибкам ввода/вывода, но вот при каких условиях возник не припомню (вероятно при нескольких одновременных попытках монтирования):

Владелец и права на файл Test.txt не известны:

В среде Linux на ДИСК 2 были созданы текстовые файлы » Test_2.txt » и » Test_3.txt » и совершено переключение на Windows XP где эти файлы были не доступны даже для просмотра, хотя после перехода обратно в Linux их можно было просматривать и редактировать.

Проблему с косяком в NTFS разделе на ДИСК 2 удалось решить только с помощью стандартного средства проверки дисков входящего в ОС Windows XP в процессе перезагрузки:

Вероятно (http://ru.wikipedia.org/wiki/NTFS#Linux) поддержка NTFS в Linux осуществляется при помощи ntfsmount (использующая FUSE), которая позволяет монтировать NTFS-разделы на запись, но с некоторыми ограничениями.

Никто не застрахован от возникновения каких-то ошибок на разделах с файловой системой NTFS или же вовсе полного краха таких разделов с необходимостью полного форматирования. Поэтому, при использовании Linux лучше вовсе не использовать NTFS разделов, или же использовать их как можно реже.

Основные причины ошибок ввода/вывода

Рекомендуемый контент

А тут же ж мог быть рекомендуемый контент от гугла 🙂 Для отображения рекомендуемого контента необходимо в браузере разрешить выполнение JavaScript скриптов, включая скрипты с доменов googlesyndication.com и doubleclick.net

Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).

Источник

Linux вывод ошибок в файл

$ programma 2> programma.errors [Enter]

Чтобы добавить стандартный поток ошибок в уже существующий файл, используйте оператор `»’ вместо `>’.

$ programma 2>> programma.errors [Enter]

Чтобы перенаправить в один и тот же файл поток вывода и поток ошибок, используйте оператор `SPMamp;>’.

Одна из самых интересных и полезных тем для системных администраторов и новых пользователей, которые только начинают разбираться в работе с терминалом — это перенаправление потоков ввода вывода Linux. Эта особенность терминала позволяет перенаправлять вывод команд в файл, или содержимое файла на ввод команды, объединять команды вместе, и образовать конвейеры команд.

В этой статье мы рассмотрим как выполняется перенаправление потоков ввода вывода в Linux, какие операторы для этого используются, а также где все это можно применять.

Как работает перенаправление ввода вывода

Все команды, которые мы выполняем, возвращают нам три вида данных:

В Linux все субстанции считаются файлами, в том числе и потоки ввода вывода linux — файлы. В каждом дистрибутиве есть три основных файла потоков, которые могут использовать программы, они определяются оболочкой и идентифицируются по номеру дескриптора файла:

Перенаправление ввода / вывода позволяет заменить один из этих файлов на свой. Например, вы можете заставить программу читать данные из файла в файловой системе, а не клавиатуры, также можете выводить ошибки в файл, а не на экран и т д. Все это делается с помощью символов » «.

Перенаправить вывод в файл

Все очень просто. Вы можете перенаправить вывод в файл с помощью символа >. Например, сохраним вывод команды top:

pipe

pipe1

Символ «>» перезаписывает информацию из файла, если там уже что-то есть. Для добавления данных в конец используйте «>>». Например, перенаправить вывод в файл linux еще для top:

По умолчанию для перенаправления используется дескриптор файла стандартного вывода. Но вы можете указать это явно. Эта команда даст тот же результат:

Перенаправить ошибки в файл

Чтобы перенаправить вывод ошибок в файл вам нужно явно указать дескриптор файла, который собираетесь перенаправлять. Для ошибок — это номер 2. Например, при попытке получения доступа к каталогу суперпользователя ls выдаст ошибку:

pipe2

Вы можете перенаправить стандартный поток ошибок в файл так:

pipe3

Чтобы добавить данные в конец файла используйте тот же символ:

pipe4

Перенаправить стандартный вывод и ошибки в файл

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

pipe5

Сначала будет отправлен вывод команды ls в файл ls-error.log c помощью первого символа перенаправления. Дальше в тот же самый файл будут направлены все ошибки. Второй метод проще:

Также можно использовать добавление вместо перезаписи:

Стандартный ввод из файла

Большинство программ, кроме сервисов, получают данные для своей работы через стандартный ввод. По умолчанию стандартный ввод ожидает данных от клавиатуры. Но вы можете заставить программу читать данные из файла с помощью оператора » cat

pipe6

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

pipe7

Таким образом, мы в одной команде перенаправляем ввод вывод linux.

Использование тоннелей

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

pipe8

С помощью утилиты xargs вы можете комбинировать команды таким образом, чтобы стандартный ввод передавался в параметры. Например, скопируем один файл в несколько папок:

pipe9

echo «Тест работы tee» | tee file1

pipe10

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

Выводы

В этой статье мы рассмотрели основы перенаправления потоков ввода вывода Linux. Теперь вы знаете как перенаправить вывод в файл linux или вывод из файла. Это очень просто и удобно. Если у вас остались вопросы, спрашивайте в комментариях!

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA %D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0 2016 09 12 %D0%B2 17.17.40

Стандартные потоки ввода и вывода в Linux являются одним из наиболее распространенных средств для обмена информацией процессов, а перенаправление >, >> и | является одной из самых популярных конструкций командного интерпретатора.

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

Стандартный ввод при работе пользователя в терминале передается через клавиатуру.

Стандартный вывод и стандартная ошибка отображаются на дисплее терминала пользователя в виде текста.

Ввод и вывод распределяется между тремя стандартными потоками:

Потоки также пронумерованы:

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

Стандартный ввод

Стандартный входной поток обычно переносит данные от пользователя к программе. Программы, которые предполагают стандартный ввод, обычно получают входные данные от устройства типа клавиатура. Стандартный ввод прекращается по достижении EOF (конец файла), который указывает на то, что данных для чтения больше нет.

EOF вводится нажатием сочетания клавиш Ctrl+D.

Рассмотрим работу со стандартным выводом на примере команды cat (от CONCATENATE, в переводе “связать” или “объединить что-то”).

Cat обычно используется для объединения содержимого двух файлов.

Cat отправляет полученные входные данные на дисплей терминала в качестве стандартного вывода и останавливается после того как получает EOF.

Пример

Введите команду cat без аргументов:

В открывшейся строке введите, например, “1” и нажмите клавишу Enter. На дисплей выводится “1”. Введите “a” и нажмите клавишу Enter. На дисплей выводится “a”.

Дисплей терминала выглядит следующим образом:

Для завершения ввода данных следует нажать сочетание клавиш Ctrl + D.

Стандартный вывод

Стандартный вывод записывает данные, сгенерированные программой. Когда стандартный выходной поток не перенаправляется в какой-либо файл, он выводит текст на дисплей терминала.

При использовании без каких-либо дополнительных опций, команда echo выводит на экран любой аргумент, который передается ему в командной строке:

Аргументом является то, что получено программой, в результате на дисплей терминала будет выведено:

При выполнении echo без каких-либо аргументов, возвращается пустая строка.

Пример

Команда объединяет три файла: file1, file2 и file3 в один файл bigfile:

Команда cat по очереди выводит содержимое файлов, перечисленных в качестве параметров на стандартный поток вывода. Стандартный поток вывода перенаправлен в файл bigfile.

Стандартная ошибка

Стандартная ошибка записывает ошибки, возникающие в ходе исполнения программы. Как и в случае стандартного вывода, по умолчанию этот поток выводится на терминал дисплея.

Пример

Рассмотрим пример стандартной ошибки с помощью команды ls, которая выводит список содержимого каталогов.

При запуске без аргументов ls выводит содержимое в пределах текущего каталога.

Введем команду ls с каталогом % в качестве аргумента:

В результате должно выводиться содержимое соответствующей папки. Но так как каталога % не существует, на дисплей терминала будет выведен следующий текст стандартной ошибки:

Linux включает в себя команды перенаправления для каждого потока.

Команды со знаками > или — стандартный вывод

Команды со знаками >> или > — стандартный вывод

Пример

В приведенном примере команда cat используется для записи в файл file1, который создается в результате цикла:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

Если файла file1 не существует, то в текущем каталоге создается новый файл с таким именем.

Для просмотра содержимого файла file1 введите команду:

В результате на дисплей терминала должно быть выведено следующее:

Для перезаписи содержимого файла введите следующее:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

В результате на дисплей терминала должно быть выведено следующее:

Предыдущего текста в текущем файле больше не существует, так как содержимое файла было переписано командой >.

Для добавления нового текста к уже существующему в файле с помощью двойных скобок >> выполните команду:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

Откройте file1 снова и в результате на дисплее монитора должно быть отражено следующее:

Каналы

Каналы используются для перенаправления потока из одной программы в другую. Стандартный вывод данных после выполнения одной команды перенаправляется в другую через канал. Данные первой программы, которые получает вторая программа, не будут отображаться. На дисплей терминала будут выведены только отфильтрованные данные, возвращаемые второй командой.

Пример

В результате каждый файл текущего каталога будет размещен на новой строке:

Перенаправлять данные с помощью каналов можно как из одной команды в другую, так и из одного файла к другому, а перенаправление с помощью > и >> возможно только для перенаправления данных в файлах.

Пример

Для сохранения имен файлов, содержащих строку «LOG», используется следующая команда:

Вывод команды dir отсылается в команду-фильтр find. Имена файлов, содержащие строку «LOG», хранятся в файле loglist в виде списка (например, Config.log, Logdat.svd и Mylog.bat).

При использовании нескольких фильтров в одной команде рекомендуется разделять их с помощью знака канала |.

Фильтры

Фильтры представляют собой стандартные команды Linux, которые могут быть использованы без каналов:

Как правило, все нижеприведенные команды работают как фильтры, если у них нет аргументов (опции могут быть):

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

Пример

Команда tee, как правило, используется для просмотра выводимого содержимого при одновременном сохранении его в файл.

Пример

Допускается перенаправление нескольких потоков в один файл:

В результате сообщение о неверной опции «z» в команде ls будет записано в файл t2, поскольку stderr перенаправлен в файл.

Для просмотра содержимого файла file3 введите команду cat:

В результате на дисплее терминала отобразиться следующее:

Мы рассмотрели возможности работы с перенаправлениями потоков >, >> и |, использование которых позволяет лучше работать с bash скриптами.

Источник

При подключении флешки к Ubuntu выдается окно:

Не удалось показать всё содержимое объекта «Transcend»: 
Ошибка при получении информации о файле «/media/hostel/Transcend/T┬¿▌▐|.k¡»: Ошибка ввода/вывода

ls -la выдает это:

ls: невозможно получить доступ к '½è'$'32''v]^1µ.nzg': Ошибка ввода/вывода
ls: невозможно получить доступ к 'T┬¿'$'35''▌'$'f''▐|.k'$'16''¡': Ошибка ввода/вывода
ls: невозможно получить доступ к ' '$'34''efτ'$'17''µé.ñ┤%': Ошибка ввода/вывода
ls: невозможно получить доступ к '┴╞í.}btá.ëuü': Ошибка ввода/вывода
ls: невозможно получить доступ к ''$'b''ƒ$v'$'34''⌡É▌.╢B│': Ошибка ввода/вывода

Файловая система FAT32. В Windows вообще говорит, что «отформатируйте диск».

Что произошло? Полетела таблица FAT? Вирус-шифровальщик? Как понять и исправить?

задан 22 окт 2019 в 20:41

Total Pusher's user avatar

Это китайская флешка. Заявленный размер значительно превышает реальный (в 4 раза и более).

Как проверить реальный размер флешки:

  1. Отформатировать флешку в fat32 или в любую другую файловую систему. Посмотреть размер — будет чуть-чуть меньше заявленного (иногда больше, или примерно столько же)
  2. Записать на нее каких-нибудь файлов на весь размер флешки (аудио-книги, коллекция mp3 и т.п.)
  3. После того как память на флешке закончится, безопасно (!!) извлечь из usb и выдернуть физически.
  4. Воткнуть обратно (можно в другой usb), примонтировать к ОС и скопировать все содержимое флешки снова на жесткий диск, после этого попытаться прочитать какие-либо файлы с жесткого диска.

В случае, если на каком-либо из этапов получим описанную в вопросе ошибку (т.е. кракозябры в названиях файлов/дирректорий и невозможность прочитать инфу с флешки/диска), повторяем все операции, но общий размер файлов делаем в 2 раза меньше — так выясняем реальный размер флешки..


P.S. такая флешка может стать приятным подарком другу или сикретной флешкой. (!!)

P.P.S. у меня было пара таких — повыкидывал сгоряча..

ответ дан 22 окт 2019 в 21:10

1

Процесс обернулся в иное русло:

При загрузке использовалось ядро старой версии 3.2 при этом пакет с ядром 3.16 был установлен но не виделся в загрузчике, после того как я вычистил пакеты мне было предложено удалить загрузчик Grub, что я и сделал.

После ковыряний шаманства в меню grub`a (последовательность команд пишу по памяти):

ls
set prefix=(hd0,msdos1) /boot/grub/ (pc-i386) - особое внимание на эту директорию т.к *.mod лежат в ней
set root=(hd0,msdos1)
set
ls /boot
insmod normal
insmod ext2
linux /boot/grub/linux.mod
linux /vmlinuz root=/dev/sda1 ro
inird /initrd.img
boot

Удалось загрузиться в граффическую оболочку с новым ядром 3.16 проблемы с USB отпали, на первый взгляд все работает на ура (звук, видео, usb) в общем все работает, НО!!!!
После перезагрузки вместо меню я снова вижу приветственный:

grub>

Как теперь настроить, что бы появилось нормальное меню grub с выбором ядра…заранее спасибо за помощь


Cообщение объединено 09 июня 2015, 20:31:49


Поиск привел к тому, что установлен был пакет grub-legasy.

выполнил:

sudo aptitude install grub2

1) Предложили заменить legasy на grub2

Пару интерактивных простых вопросов и пакет настроен, момент перезагрузки…(результаты напишу позже)


Cообщение объединено 09 июня 2015, 20:34:46


Все впорядке, тему можно закрывать.

Понравилась статья? Поделить с друзьями:
  • Ошибка при получении информации о принтере 1с
  • Ошибка при получении информации о пользователе
  • Ошибка при получении информации о поле конец
  • Ошибка при получении информации о контейнере vipnet
  • Ошибка при получении информации о контейнере 1038