Лого на страниците (малко). Система Orphus
Ако забележите грешка, маркирайте израза с мишката и натиснете Control+Enter. Благодаря!
Александър Иванов
Файлове и директории
Проблемът
Когато възрастен човек си отдели пари и си купи първия компютър, той влиза почти неизбежно в един твърде неприятен сценарий.
Някой по-опитен му поставя някакъв „офис-пакет“, тоест набор от програми с уж общо предназначение, например MSOffice, LibreOffice, OpenOffice или нещо подобно.
Обикновено този помагач извежда на екрана и иконка на текстовия процесор — това е програмата, с която си пишете текста и си го правите красив (с курсивни или с черни, с по-големи или с по-малки букви и пр. и може да го отпечатате на принтера почти така красив). Такива програми са MSWord, Writer (от OpenOffice или LibreOffice), AbiWord и др.
 
На страницата List of Word Processors има дълъг списък на текстови процесори, а на страницата Comparison of Word Processors — съпоставки между тях.
Ако човекът си е купил и принтер, помагачът обикновено настройва и принтера и показва: „Ето, чукваш тука върху иконката, отваря ти се Word, пишеш си. Като искаш да печаташ, натискаш Ctrl+P и печаташ.“
Това е достатъчно новият собственик на компютър да се почувства щастлив. Помагачът си отива и човекът сяда да пише я дипломна работа или статия, я дисертация или книга. И никой не го е предупредил, че неприятностите едва сега започват…
Защо?
Нека да помислим. Кое е безценното във вашия компютър?
Безценна е само информацията, която сте създали вие, вашите текстове, вашите таблици, вашите данни. Всичко друго — и техниката, и програмното осигуряване — може да бъде възстановено. Обикновено отнема време, може да бъде и скъпо, но може да бъде възстановено. Не може да бъде възстановен само вашият труд, ако го загубите.
Ето защо е необходимо да отделите малко време — наистина малко! — за да разберете:
1) къде и как се съхранява вашата информация в компютъра (за това ще разказвам тук);
2) как да копирате и да съхранявате информацията си на независими устройства, за да я предпазвате от разни злочестини — кражба или повреда на компютъра, „омазване“ на операционната система или зловреден софтуер и пр. (затова смятам да напиша отделен текст).
Ако не отделите малко време да изучите тези неща, катастрофата пред вас е сигурна. Наскоро мой познат преводач, хем уж с петнадесетина години опит с компютър, успя да си затрие превода на цяла книга! И де да беше единствен случай, нямаше да ви занимавам с това. Ама не е…
Текст и файл
Може би сега е време да хвърлите един поглед върху „Как тръгва компютърът? BIOS. Операционна система“ — там съм обяснил какво значи „оперативна памет“, „операционна система“, „твърд диск“, „драйвер“, така че най-обща представа за тези основни неща ще ви е нужна.
Когато пишете текста си (или създавате електронна таблица, или рисувате картинка, или редактирате звуков файл, или създавате анимационен филм), всички данни, които обработвате, обикновено се намират в оперативната памет на компютъра ви.
Но оперативната памет е енергозависима, тоест данните в нея се съхраняват само докато работи компютърът. Щом го изключите, всичко в нея се „забравя“. Затова трябва да запишете данните си на памет, която не зависи от електрозахранването, и чак тогава да изключите компютъра си.
Сега най-често като независима от електрозахранването памет се използва твърдият диск (започват да си пробиват път и нови устройства, например SSD). На картинките по-долу съм се опитал това да го нарисувам.
 
Оперативна памет и дискова памет при включен компютър.
 
Когато записвате текста си за първи път, установявате връзка между текста, който е в оперативната памет, и името на файл, с което ще бъде записан той на диска (хоризонталната стрелка).
Обърнете внимание, че заглавието на вашия текст не е името на файла. Вие може да дадете на файла си каквото искате име, но е разумно то да ви подсеща какво сте записали във файла. По-нататък давам примери за имена на файлове.
Нещо повече. Вие може да запишете файл, в който няма текст. Иначе казано да създадете „празен“ файл. По-късно, например утре, може да отворите този празен файл и да започнете да си пишете текста в него.
Грижа на файловата система е да запише името на файла на твърдия диск. Но без да ни занимава с това, тя върши и много друга работа. Тя трябва да намери място на диска, където да запише вашия текст, и да установи връзка между името на файла и записания на диска текст (вертикалната стрелка).
Когато спрете компютъра си, всичко, което е било в оперативната памет се изличава.
 
Оперативна памет и дискова памет при изключен компютър.
 
Но на диска във файловата система е записан вашият текст във файла, записано е и името на файла, запазена е и връзката между тях. Затова утре, като си пуснете компютъра пак, може да намерите текста си по името на файла, а чрез връзката между името на файла и текста, той може да бъде копиран в оперативната памет и да продължите работата си върху него.
Изводът? Файловата система е начинът, по който е организирана информацията на диска ви. Именно тя поддържа списък с имената на файловете и препратка от името на файла към място на диска, където наистина са записани данните ви.
Тук няма нищо ново — това е организацията на библиотеката. Само дето на диска са записани и книгите (хранилището), и каталозите.
Ясно е, че операционната система трябва да „разбира“ тази организация, за да може да чете от този диск и да пише на него. Всяка операционна система си има родна, нейна си файлова система и с нея си работи без проблеми. Но за да чете чужда файлова система, може да се наложи да използвате допълнителна програмка-преводач (драйвер).
 
Пример
Имам си външен диск, на който си съхранявам нещата. Аз съм си нагласил този диск да работи с файловата система на Linux, защото с тази операционна система работя аз.
Ако ви дойда на гости с диска в джоба и поискаме да ви прехвърля някаква информация (например, филмче, снимки, текст), това няма да стане „автоматично“, щом на вашия компютър е инсталиран Windows. Windows не разбира от чужди файлови системи, тоест Windows не е в състояние да чете моя диск.
Ще трябва да изтеглим и да инсталираме някоя програма-драйвер, която да научи Windows да работи с други файлови системи. Такива програми има много, те обикновено са freeware, тоест без притеснения може да ги изтеглите по интернет и да ги използвате. На тази страница са разгледани три такива програми: http://www.howtoforge.com/access-linux-partitions-from-windows.
Впрочем, запомнете си този сървър howtoforge.com — на него може да намерите отговори и на много други въпроси.
Ако пък вие с вашия диск, форматиран за Windows, ми дойдете на гости, моят Linux няма да има никакви проблеми да прочете вашия диск. Защо?
Защото Linux е свободна операционна система с отворен код, която няма интерес да се прави, че Windows не съществува. Само че това е тема за друг разказ.
Сега искам да ви обърна внимание върху нещо важно.
В примерчето аз показах как се записва текст във файл. Споменах, че във файл може да записвате и други неща — музика, картинка, филм.
Това е възможно, защото файловата система изобщо не се интересува от данните, които съхранявате в нея. Тя е така организирана, че в нея може да съхранявате всякаква информация.
Операционната система също не се интересува кой знае колко от това, какви данни я карате да пише по дисковете.
Така всеки програмист може (и програмистите често го правят) да си измисли формат, в който да си записва данните във файл, по начин, подходящ, удобен за работата на програмата му.
Това е причината, поради която има много формати на файл за запис на текст, за запис на музика, на картинки или филми, а търговските фирми, които работят в една и съща област, се борят техният файлов формат да бъде признат за стандартен.
 
Любознателният пита: Как така може да се записва различна информация по един и същи начин?
Може. Чрез техническото реализиране на няколко прости идеи — може. Но и това ще е тема на друг разказ.
Файлове и директории
Файловете на един съвременен компютър са много.
Преброявам файловете на моя твърд диск — 440 хиляди, с извинение…!
От тях „само“ 130 хиляди са мои, тоест създадени са от моята работа (не непременно от мене; повечето са създадени „автоматично“ от програмите, с които си служа). Останалите 300 хиляди с ексик — това е операционната система, инсталираните програми и всичките съпровождащи ги файлове.
Така изглежда днес твърдият диск на един работен компютър.
Представяте ли си, колко ужасно щеше да бъде, ако всичките тези файлове са събрани в един-единствен списък!?
Затова във файловите системи се прилага още една хитрина: името, записано в каталога, да сочи не към файл, а към друг каталог. Ето така:
 
Файлове и директории.
 
Пред думичката каталог в списъците аз съм поставил звездичка: *Каталог. Точно така постъпва и файловата система — тя си отбелязва, че това име не сочи към файл, а сочи към друг (под)списък с файлове.
Това разширение на файловите системи дава възможност да си строим дървовидна структура от подкаталози и да разбиваме на части предългия списък от файлове. Естествено, всички разклонения на това „дърво“ започват от първия каталог на диска. Затова го наричат коренен (root) каталог.
 
Любознателният пита: Хм! Всеки подкаталог си има име, вписано в по-горния от него каталог. А какво е името на коренния каталог?
Вярно, коренният каталог е „безименен“. Затова е създадено „служебно“ име за него — повече разяснения давам в раздела Няколко специални имена на директории.
Подкаталозите стоят на различни равнища спрямо коренния каталог; тоест, равнището отразява колко отдалечени са те от коренния каталог, на колко стъпала от него са. В информатиката имат навика да номерират не от едно, а от нула — така съм постъпил и аз на схемата. Защо? Ами помислете си не за равнища, а за стъпала: очевидно коренният каталог е на нулевото стъпало, така да се каже, на площадката пред стълбата.
 
Терминология и етимология
Англоезичният термин за каталога (списъка от файлове) е директория (англ. directory). Смята се, че произхожда от едно от значенията на думата в американския английски: телефонен указател. В указателя срещу името ви стои телефонният ви номер, тоест, препратката към вас. Такава е мотивацията на термина, подобна е на мотивацията на каталог в библиотеката.
Когато се появиха графичните среди, започнаха да рисуват директориите на екрана като папки. И започнаха да наричат директориите папки (англ. folder).
Така че каталог, директория и папка, щом става дума за файлова система, са синоними.
Но в естествения език синоними няма. И между тези три термина веднага се появи социолингвистична (стилистична) разлика: новаците казват папка, старият опитен вълк винаги говори за директория, а гуру като автора на този текст предпочита просто каталог.
 
Файл
В американски филм секретарката влиза в кабинета на шефа и му подава папка. В българския превод чуваме: „Ето, намерих файла.“.
В български думата файл не се употребява никъде другаде, освен като термин от областта на файловите системи. В английския не е така, думата file има много значения, възникнали далеч преди ерата на компютрите. И едно от тези значения е папка с документи по даден въпрос — много прилича на българското дело в административния жаргон. Така че внимавайте с превода на file, това е едно от лошите другарчета на преводача.
Имена на файлове и директории
Някога, в праисторическите времена на DOS, имаше строги ограничения за имената на файловете:
 
— използват се само латинските букви и не се прави разлика между главни и малки букви;
— името се състои от две части — същинско име и разширение (extension);
— разделител между името и разширението е точката;
— името може да е дълго до 8 символа;
— разширението може да е дълго до 3 символа;
 
Ето пример за реални файлове от онова време:
 
COMMAND.COM
AUTOEXEC.BAT
 
Или за един текст, написан на MSWord:
 
DOKLAD.DOC
 
Разширението (суфиксът) на имената се използваше в DOS, използва се и сега в Windows като родов белег — то показва типа на файла. Така разширенията .EXE и .COM показват, че това са файлове, съдържащи програми в „бинарен“ вид (тук не е зле да погледнете Текстов файл, бинарен файл), разширението .DOC показва, че това е текст, създаден с MSWord и т. н.
 
Да, да! — не се чудете… MSWord е стара програма, по-стара от Windows, работеше си още в DOS. Даже някъде у нас, по държавните организации бяха превели текстовите стрингове в програмата и я продаваха под името DOCS.
Защото нечуваният напредък на България в информационните технологии през социализма изглеждаше точно така.
Не ми вярвате? Погледнете тогава седмата глава от спомените на капитан Цветан Аврамов, отличник на випуск 1951 г. на Военноморското училище. Седмата глава се отнася точно до информатиката. А иначе останалото четиво е също много интересно.
Практиката разширенията да показват типа на файла се оказа полезна и нагледна и за хората, та дори в случаите, когато не е задължително да се пишат разширения към имената на файловете, хората започнаха да ги пишат. Например обикновеният текстов файл не е задължително да има разширение, но хората си го поставят: .TXT. За операционната система Linux разширенията нямат (почти) никакъв смисъл, но хората си ги пишат, а и много приложни програми поставят свои разширения към имената на файловете, които създавате с тях.
 
В интернет съществуват списъци с разяснения за типовете разширения към имената на файлове. Вижте, например, Alphabetic File Extension List.
Досовото изискване за дължина на имената на файлове (8-точка-3) беше прекалено ограничително. С развитието на файловите системи то беше премахнато и сега можем да използваме дълги имена на файлове и дълги разширения. Всъщност, пак има ограничение, но то е „отместено“ до повече от 250 символа.
Чак толкова дълги имена на файлове е неразумно да се пишат, пък дори само за това, че не можете да ги видите на един ред на екрана.
 
Мечешка услуга:
Беше въведена и възможност да се използват и други символи, а не само буквите от латинската азбука. Сега (в повечето случаи) може да използвате в имената на файловете и кирилица и дори да разделяте думите с шпации (с пробели).
И веднага ще кажа — не го правете! Имена с кирилица и с шпации ще вървят горе-долу добре на вашия компютър, макар че дори на него може да имате проблеми. Но щом преместите файл с такова име на друг компютър (а интернет е измислен затова, нали!?), проблемите веднага започват. Може би в бъдеще ще е възможно наистина да изписваме имената на файловете на родния си език, но засега нещата не изглеждат оптимистично…
Затова:
— Транслитерирайте българските думи в името на файла с латиница.
— Вместо шпация използвайте подчертаващо долно тире _. То е на горния ред на клавиатурата, вдясно, над знака минус и се въвежда с Shift.
— Не използвайте в имената на файловете други символи освен буквите от английската латиница, подчертаващото тире, разбира се, точката и (евентуално) дефис (малкото тиренце от английската клавиатура).
Тази проста практика ще ви спести много неприятности.
 
Ето няколко примера за имена на файлове:
 
za_sbornika_2011.odt
Pismo_ot_NS.html
Elin_Pelin.Malkiyat_razkaz.txt
 
Разяснения:
Разширението .odt показва, че това е текст (-t), записан в OpenDocument формат (od-). Този формат се използва от много програми с отворен код.
Разширението .html е съкращение от Hypertext Markup Language (език за оформление на текст с препратки) — това е стандартът, по който се оформят страници в интернет.
Разширението .txt показва, че във файла има „гол“ текст. Обърнете внимание, че в името на файла има точка — това е допустимо, защото операционните системи възприемат като разширение само онази част от името, която е вдясно от последната точка.
Когато записвате нов файл, например нов текст, за първи път, отделяйте секунда-две, за да обмислите името му. Когато разглеждате по-нататък списъка с файлове, името на файла трябва да ви ориентира какво сте записали в него. Затова имена като
 
statiya.doc
data.txt
pismo.odt
 
никак не са подходящи. Далече по-добре би било така:
 
statiya_BEL_X.2011.doc
data_cardio_M.Zaneva.txt
pismo_za_Nasko_13.IV.2010.odt
 
Пак мечешка услуга
Много програми с графичен интерфейс предлагат „автоматично“ имена на файлове. Например Writer на LibreOffise предлага Untitled 1 като име на нов файл. Ако сте сбъркали да го запишете, следващият безименен файл ще бъде Untitled 2 и т. н. По дисковете на новаците могат да се намерят десетки файлове Untitled... Рисковано е да ги изтриете, защото новаците се изхитряват да запишат вътре и текст, та трябва един по един да се отварят, да се види какво има вътре и след това да се изтрие файлът.
Не мислете, че MSWord остава назад, не, той прави същото, само че предлага далеч по-значещите имена Document1, Document2 и т. н.
В Microsoft дори са се изхитрили да направят още една мечешка услуга — когато човек записва за първи път текста си, предлага му се като име на файл първият ред на текста. Така се появяват файлове като
 
ДОКЛАД ЗА ИЗНОСА НА МАГДАНО.doc
 
Много находчиво! Само дето такова име съдържа всичко необходимо, за да ви отрови живота в бъдеще. При това е отрязано дотам, докъдето Windows е намерил за необходимо.
Затова, когато си имате работа с такива „умни“ програми, не забравяйте да редактирате името на файла, преди да го запишете за първи път.
 
И трябва да направя една забележка за главните букви. Може да използвате в имената на файловете малки и главни букви.
Само че Windows (както и по-рано DOS) не прави разлика между малки и главни букви, тоест moya_tekst.doc и Moya_Tekst.doc за Windows ще са еднакви имена; операционните системи, подобни на UNIX (като Linux или Mac OS X) правят разлика между главни и малки букви и за тях тези две имена ще са имена на различни файлове.
Имената на директории (каталози) се подчиняват на същите правила като имената за файлове. Имената на директории нямат разширения — разширението като знак за типа на файла няма смисъл за каталозите. Но в имената им е допустимо да използвате точка, както и подчертаващо тире. Допустими са също и кирилските букви, и шпацията, но по-добре не ги използвайте, за да си нямате ядове.
Дискове и дялове на дискове
Съвременните твърди дискове осигуряват много дисково пространство (пространство за запис на файлове). Наистина много. И с всеки следващ модел твърд диск то става все по-голямо.
Затова е създадена възможност дисковете да се разделят на дялове. Пред операционната система всеки такъв дял се представя като отделен диск — на отделните дялове на твърдия диск могат да бъдат поставяни различни файлови системи и дори различни операционни системи.
Освен това на домашните компютри (от типа PC) може да бъде поставен и втори твърд диск. Той, разбира се, също може да бъде разделен на дялове.
На преносимите компютри втори диск не може да бъде поставян — просто няма място в малката им кутийка.
Но към всички компютри — и към домашния, и към преносимия — могат да бъдат включвани външни дискове. По-евтините модели външни твърди дискове са с интерфейс USB (предвиден е във всички съвременни компютри); по-скъпите външни дискове са с интерфейс eSATA (възможно е компютърът ви да няма извод за такъв интерфейс), а от 2008 г. постепенно се налага и нов USB стандарт — USB3, който осигурява 10 пъти по-висока скорост на обмен от сегашния USB2.
Това са технически подробности, но е разумно, когато си купувате компютър, да разпитате какви външни дискове могат да се свързват с него. Защото външният диск е много необходимо и вече достъпно устройство.
 
Пример с Windows
Да приемем, че имате домашен компютър с Windows. В компютъра ви са монтирани два твърди диска, като първият е разделен на два дяла, а вторият не е разделян. Тогава нещата ще изглеждат така:
 
Дискове и дялове от дискове в Windows.
 
Windows именува дисковете и дяловете на дисковете под ред с главни латински букви и двоеточие, като първият дял на първия диск получава име C:, вторият дял/диск получава име D: и т. н. Имената за „устройства“ A: и B: са заети за първото и за второто флопи, макар вече флопи-дискове практически да не се използват. Но какво да се прави — култура! Никой не може да промени миналото…
Ако към компютъра от нашия пример включим външен диск, той ще се появи с име F:. По същия начин ще се държи и флаш паметта или оптичният диск:
 
Windows - USB.
 
Все пак има начин в Windows да се свърже принудително даден диск с определена буква от латинската азбука. Например, ако в офиса има файлов сървър (компютър, на който всички могат да пишат и да четат от него по мрежата — удобно е за бърз обмен на файлове), мрежовите администратори обикновено го свързват с име Z: — така дават възможност външните устройства (флаш памети, оптични дискове), като ги включите към вашия си компютър, да придобиват обичайните си имена по реда на азбуката.
 
Пример с Linux
Във файловата система на Linux (както и в Mac OS X и други операционни системи, наследници на UNIX) не се използват главни букви и двоеточие за имена на дискове и дялове от дисковете. Дисковете и дисковите дялове се свързват „гладко“ с файловата система и се появяват в нея като директории. Например, ако имате външен диск с име (англ. label) my_disk и го свържете с компютър, където работи Linux, съдържанието му ще се появи в директорията /media/my_disk или /media/your_name/my_disk или нещо подобно.
За Linux ще давам повече обяснения другаде.
„Пълна файлова спецификация“
Този отвратителен израз се е забил в главата ми като гвоздей още от калпавия български превод на документацията за DOS (не че оригиналът беше пример за изящна словесност). За да го направят още по-отвратителен, понякога изписваха и „спесификация“.
Този израз, полукалка на английското complete file specification, трябва да се тълкува така: пълно описание за достъпа до файла. Картинката разяснява повече:
 
Пълно описание на достъпа до файла.
Това е описание на пълния достъп до файла L-Participles.doc в Windows. Всичко, което обяснявах дотук, е налично в примера: първият елемент е устройството (диск или дял от диска); вторият елемент е пътят, тоест през кои директории трябва да се мине, за да се достигне до файла; третият елемент е името на файла и четвъртият — разширението към името на файла.
В Linux нещата стоят горе-долу по същия начин, но липсва първият елемент устройство (диск или дял от диск), защото, както вече споменах, там съдържанието на диска се появява като съдържание на нова директория. Ето подобен пример в Linux:
	/home/peshko/documents/statii/L-Participles.odt
	
Любознателният пита: Ха! Защо в примера с Windows наклонените черти падат наляво, а в примера с Linux — надясно?
Наклонената черта, която пада надясно (англ. slash) се използва като разделител между елементите на описанието за достъп до файла, включително между отделните директории в пътя до файла. Така е във всички операционни системи, които са от типа на UNIX, така е и в адресите в интернет.
Да, да! Адресите в интернет не са нищо друго, освен описание как да се стигне до даден файл. Единствената разлика при тях е, че първият им елемент не е дисково устройство, а име на компютър (на сървър) в мрежата. Вие в момента четете файл с име faylove_i_direktorii.html, който се намира на сървър с име www.miryan.org (www. не е задължителен елемент) в директорията comptales.
В Windows обаче (а така е и в DOS) за разделител се използва черта, падаща наляво (англ. backslash). Както беше писал преди време един майтапчия:
— Е, всеки може да сбърка…
А ние трябва да помним тази „грешка“ и да се съобразяваме с нея…
 
Любознателният продължава да пита: А мога ли да копирам файла L-Participles.odt в друга директория, например в /home/peshko/documents/dokladi?
Може. На диска може да се записват файлове с еднакво име и дори с еднакво съдържание, стига да са в различни директории. В една и съща директория, разбира се, не е възможно да има файлове с едно и също име.
Разбира се, вие може да копирате файла L-Participles.odt като, например, L-Participles_2.odt в същата директория. Сега ще имате два файла с еднакво съдържание, но с различни имена. Това се прави, когато искате да запазите стария вариант (L-Participles.odt), а да редактирате следващия (L-Participles_2.odt).
От тези очевидни съображения излиза едно важно следствие: стандартен начин да си затриеш днешния труд е да си препишеш вчерашния файл върху днешния. Програмите, с които това може да се направи, обикновено те предупреждават, ама и някой трябва да гледа, да чете съобщенията и да съобразява…
Програми за работа с файлове (файлови менажери)
Работата с файловата система (значи, с дискове, каталозите и файловете) е важна част от всяка операционна система. Затова в операционната система има команди, с които може да се създават файлове и каталози, да се копират, да се местят или да се изтриват файлове и каталози. Всички тези команди работят, разбира се, в конзолата — черния екран, който плаши новаците. Но дори и опитните хора предпочитат да извършват тези действия със специализирани програми, работата с които е по-нагледна. Общото наименование на тези програми е файлови менажери (англ. file managers). Файлови менажери има стотици, ако не са и хиляди, но всички те правят едни и същи неща, защото смислените действия с файлове и директории не са много.
Е, някои файлови менажери имат допълнителни възможности — например да ви показват в малък формат снимката, когато поставите курсора върху файл със снимка, или да запяват песничка, ако поставите курсора върху файл с песничка, и други такива приятни глезотии; по-сериозните файлови менажери могат да работят по мрежата на отдалечен компютър, дават ви възможност да разглеждате и да редактирате файлове, да създавате и да развързвате архиви с файлове, а имат и някои други, по-специални възможности, например „шестнадесетичен редактор“ (това е средство да се четат и да се редактират донякъде данните директно върху диска, което си заслужава отделен разказ).
 
Лирично отстъпление
Задължително е — наистина е задължително! — да разучите малко някой файлов менажер, преди да започнете каквато и да било сериозна работа на компютъра си. В противен случай рискът да загубите работата си е много, наистина много голям!
Гледайте на програмите като на инструменти, ако повече ви харесва, като на прибори за хранене — нож, вилица, лъжица, черпак… Всяка програма си има предназначение, а някои работят прекрасно заедно, точно като вилицата и ножът. Да започнете да пишете книга с MSWord, например, без да познавате Windows Explorer (файловия менажер на Windows), е точно като да се храните с нож без вилица.
Не че не може, но е почти сигурно, че ще оклепате я бохчата, я дрехите си…
С всички файлови менажери може
— да създавате директории и файлове;
— да изтривате директории и файлове;
— да копирате директории и файлове от едно място във файловата система на друго (включително и от един диск на друг диск);
— да преименувате директории и файлове;
— да премествате директории и файлове от едно място на друго (ясно е, че преместването е последователност от две действия: копиране и изтриване).
Толкова! С това се изчерпват разумните действия и комбинации от действия, които можем да прилагаме към директориите и файловете. Може би не е зле тук да погледнете и Ама сега кой клавиш да натисна?
 
Видове файлови менажери
Както току-що показах, действията с файловете и директориите не са много. Така че и белезите, по които се различават файловите менажери не са много. Един от белезите е дали работи в конзолата или в графична среда; другият разделителен признак е интерфейсен — с един или с два панела е файловият менажер.
Сега ще направя малка историческа екскурзия.
Някога, някога, толкова някога, чак във втората половина на 80-те, имаше един епичен файлов менажер Norton Commander (името му обикновено се съкращава до nc), разработка на Peter Norton Computing. Той, разбира се, работеше в DOS, защото по онова време новороденият Windows изглеждаше като някаква нескопосна надстройка над DOS, която повече пречеше, отколкото да помага. Ето как горе-долу изглеждаше Norton Commander:
 
Norton Commander.
 
Norton Commander се оказа толкова разумно организирана програма, че и до днес е модел, по който се разработват много файлови менажери — и конзолни, и с графичен интерфейс. Той предоставя два панела, в които може да виждате съдържанието на различни директории. Така най-честите действия — копиране или преместване на файлове — стават нагледни.
 
Разбира се, в двата панела може да виждате и съдържанието на една и съща директория. От онова време е вицът, дето един новак разправя:
— Пускам аз Norton Commander и гледам — отляво диск C и отдясно диск C. Що са ми два диска C! — казвам си аз — и изтрих единия.
На предпоследния ред се вижда друго голямо предимство на nc — разпознавателният знак на DOS. Така може да се въведе всяка команда към DOS, а в много случаи това е най-лесният начин да се свърши работата. Това го разбират и в Microsoft, та след като години наред се опитваха да ни накарат да забравим за DOS, напоследък разработиха PowerShell — нещо подобно на линукския терминал.
Друго блестящо качество на Norton Commander е възможността да се работи с архиви като с директории, тоест отваряте архива в един панел на програмата и може да копирате файлове от архива или в архива, както и да триете файлове от архива. Това днес не изглежда кой знае какво чудо, но навремето си беше голяма новост и удобство.
В онези идилични времена имената на програмистите се вписваха в програмите, както е днес в отворения код, та затова знаем — основен разработчик на Norton Commander е Джон Соча (John Socha).
Все пак Norton Commander не беше единствената подобна програма. С голяма популярност се ползваше файловият менажер XTree, както и пакетът помощни програми PCTools, чийто файлов менажер можеше да чете разнообразни файлови формати, а имаше и много добри средства за работа с дисковете на ниско равнище, за възстановяване на файлове и за резервни копия. Много обичах PCTools!
Изобщо всички онези елементи, които после бяха реализирани в графичния интерфейс — прозорци, панели, менюта, диалогови прозорци и съобщения, подсказки и помощна информация, бяха създадени още в текстовата конзола.
Но очевидно Norton Commander е успял да покрие онези функционални възможности и дизайнерски решения, които по някакъв начин са оптимални, та толкова десетилетия след създаването му има поне няколко негови наследници, които се разработват активно.
За Windows това е FAR. Към основната програма има много приставки (plugins), хвърлете им един поглед.
За работещите в подобните на UNIX системи (значи и за линукс) си има GNU Midnight Commander (съкращава се до mc и е очевидна закачка с nc). Инициатор на тази програма е Мигел де Икаса, един от активните привърженици на отворения код.
Midnight Commander е включен в повечето сглобки на линукс и е достъпен (в случай, че вашата сглобка не го инсталира) от хранилищата. Освен стандартните и обичайни възможности на Norton Commander mc поддържа и всички необходими днес неща. Например, мрежова комуникация. Ето пример:
 
Midnight Commander като FTP клиент
 
В левия панел се вижда директорията glotta, която е на моя компютър и където аз разработвам материалите за тази инициатива; в десния се вижда директорията glotta на интернетския сървър, където аз качвам готовите неща. На практика със сървъра се работи така, сякаш е диск на вашия компютър. Midnight Commander поддържа няколко възможности за връзка със сървър, включително SFTP.
Понякога тези файлови менажери (с два панела и с команден ред) ги определят като „ортодоксални“: вижте подробната страница (електронна книга) на Николай Безруков.
Във всяка графична среда си има „вграден“ графичен файлов менажер. В Windows това е Windows Explorer, ама в някои версии на Windows е File Explorer.
 
Не го бъркайте, моля, с Internet Explorer!
Internet Explorer е програмата, с която се разхождате из интернет; Windows Explorer (или File Explorer) е програмата, с която се разхождате по дисковете си и работите с файлове и директории.
От чисто теоретична гледна точка дали се разхождате по дисковете си, или се разхождате из интернет, няма голямо значение. Затова в Microsoft са правили опити да съчетаят двете действия в една програма, тоест да обединят браузъра и файловия мениджър.
Свободният код не е изостанал — например в KDE (една от графичните среди в линукс) е създадена програмата Konqueror, която също обединява браузър и файлов мениджър.
Ама накрая се оказа, че ако от едната страна на дръжката има чук, а от другата — френски ключ, не че не може да се работи, ама е неудобно. Та пак ги разделиха.
В съвременната софтуерна индустрия нещата се развиват толкова бързо и интензивно, че няма време да се помисли, камоли да се изследва ергономичната (удобната за човека) страна на въпроса. Та се работи засега малко опипом.
Но аз подозирам, че това скоро ще се промени. Ще се наложи да се търсят оптималните, ергономичните, удобните за човека решения. И тогава за нас, „хуманитаристите“, ще се отвори много работа в тази индустрия. И трябва да сме готови за това.
Ето как изглежда Windows Explorer в Windows 7:
 
Windows File Explorer
 
В централния панел се виждат файловете и директориите. Те могат да се показват по различен начин — с повече технически подробности или с повече картинки. За това си има настройки.
Ако се избере някакъв файл, вдясно може да се отвори панел, където се показва съдържанието на файла, стига това да е възможно. Понякога трябва да изчакате, за да видите съдържанието на файла. Резултатът може да бъде нещо такова:
 
Windows File Explorer with a file contents
 
В левия панел са тъй наречените места (англ. places). Разделът Libraries представлява „виртуална директория“, тоест това са препратки към реално съществуващите на диска директории и файлове. Не ми е много ясно с каква цел се прави това „опосредстване“, по всяка вероятност идеята е да не се плаши простият потребител с технически подробности.
Може да работите с месеци и с години, без да знаете къде всъщност си пишете файловете. А това не е хубаво. Не е и безопасно за вашите данни.
Ако чукнете върху файл или директория в раздела Libraries с десния клавиш на мишката, ще се отвори контекстно меню — в него има раздел Properties, там може да видите къде действително се намира този файл или директория.
В линукс има множество графични среди и може да си избирате — от най-семпла и пестелива на ресурси (например, Window Maker) до съвсем съвременни с много специфично за тях програмно осигуряване като KDE или GNOME. И всяка графична среда си има „неин си“ файлов менажер.
Ще дам само един пример с Dolphin, подразбиращият се сега в KDE4 файлов менажер:
 
Dolphin in USU
 
Доста прилича на Windows Explorer — вляво е панелът с „местата“, вдясно е информационният панел, в средата са файловете и директориите. Това е стандартната настройка, която има Dolphin в Учи свободен с Убунту.
Програмите в отворения код често са много гъвкави. То е разбираемо. Не стига, че всеки може да предложи промяна или допълнение, ама често това са и хората, които могат да го направят. Та ето как съм си настроил аз Dolphin на моя работен компютър:
 
Dolphin on my computer
 
Доста ортодоксално, нали? Ама така съм свикнал.
Нека да ви посоча и една страница (File manager), където има много препратки. И още една страница (Comparison of file managers), където пък се правят множество сравнения между различни файлови менажери.
Появиха се и файлови менажери, специализирани за мрежова работа с файлове. Много популярна и удобна програма от този тип е FileZilla.
Няколко специални имена на директории
Този досадник, любознателният, вече попита: какво е името на коренната директория?
Ами — наклонена черта. В зависимост от операционната система това е падаща надясно наклонена черта (slash) в подобните на UNIX системи и падаща наляво (backslash) в DOS и Windows.
Примери:
В Windows
 
Конзола в Windows.
 
Ха! Изненадах ли ви!?
Картинката не е от обичайната ви графична среда, а е от „конзолата“ — черното екранче с бели букви, което паникьосва дори уж опитни уиндоусаджии…
В Windows то се нарича Command Prompt, където prompt означава „разпознавателен знак“ и е далечен отзвук от DOS. Разпознавателният знак точно това би трябвало да ви показва: имате работа с DOS.
Работата е там, че специалните имена на директории почти не се използват в графичния интерфейс. Макар че понякога може да ги използвате. Но специалните имена на директории се използват в конзолата много често и затова ще ви давам примери в конзолата. А вие не се бойте от нея де, не хапе!
Не обръщайте внимание на първите два реда — там Microsoft заявяват права и претенции. Гледайте третия ред: C:\Documents and Settings\Al Iv>, това е разпознавателният знак на конзолата (prompt).
Всъщност, разпознавателният знак е само ъгълчето >, но настройките често са такива, че да показват и директорията, в която сте в момента (англ. current directory, а в калпавия превод на документацията „текуща директория“). Сега това е C:\Documents and Settings\Al Iv — в Windows XP всички потребители са събрани в C:\Documents and Settings.
Това е променено в по-новите версии на Windows. Например в Windows 7 всички потребители са събрани (тоест, всеки от тях си има директория) в C:\Users. Нищо лошо! Името \Users е далече по-логично от \Documents and Settings.
Но да се върнем към примера.
Командата, която съм написал, е cd \. След като напишете команда в Command Prompt, трябва да натиснете Enter. С клавиша Enter се изпълнява командата.
cd е съкращение от change directory („смени директорията“), а \ е името на коренната директория. Резултатът се вижда на последния, четвъртия ред — сменил съм директорията, тоест „текуща“ директория е станала коренната на диск C:\.
Използвайте командата dir, за да видите съдържанието на директорията и да се убедите, че е така.
 
В Linux
В линукс нещата изглеждат горе-долу по същия начин:
 
Конзола в линукс.
 
Когато стартирате конзолата в линукс, никой с нищо не се хвали, а веднага се извежда работният ред. Изразът sasho@eto0 означава, че на компютър с име eto0 работи в момента потребител sasho. Символът ~ след двете точки означава, че потребителят sasho се намира в собствената си директория. С командата pwd (print working directory) аз показвам коя точно е директорията на sasho: /home/sasho. В линукс всеки потребител си има своя директория в /home.
Знакът $ означава, че sasho е с права на редови потребител. Ако той приеме права на свръхпотребител (root), знакът $ се променя на #.
Впрочем, всеки елемент от разпознавателния знак може да бъде пренастроен, но тук аз показвам една горе-долу традиционна настройка.
Командата cd / много прилича на командата в DOS/Windows. Само наклонената черта, разбира се, е падащата надясно (slash). С pwd се убеждаваме, че сме преминали в коренната директория.
Обърнете внимание на вълнообразната черта ~ — това е специално име на директория в линукс, което винаги сочи домашната директория; където и да се намира нашият sasho из файловата система, когато той напише ~, това ще се развие като /home/sasho. Такова име на директория в DOS/Windows няма.
 
Любознателният продължава да пита: Спомена за „пълно описание за достъп до файла“. А има ли непълно?
Не, непълно няма. Има обаче относително описание за достъп до файла. „Относително“ е, защото се отнася към мястото във файловата система, където си ти в момента, тоест към работната директория, и достъпът до файла се описва спрямо нея.
За да разясня това, ще ви предложа да направите един експеримент: напишете в конзолата на Windows командата dir и натиснете Enter. Ще видите нещо подобно:
 
dir в Windows.
 
Приблизително същия ефект ще получите в линукс с командата ls -la:
 
dir в линукс.
 
И в двата случая виждаме списъка на файловете и директориите. И в двата случая първият елемент в списъка е име на директория „една точка“ (.), а вторият е име на директория „две последователни точки“ (..). Да, това са служебни имена на директории.
Директорията с име „две последователни точки“ (..) сочи към предишната, по-горната директория в йерархията. Така, ако работната директория е C:\Documents and Settings\Al Iv и изпълним командата cd .., ще попаднем в директория C:\Documents and Settings. От същата ситуация, ако изпълним cd ..\.., ще попаднем просто в коренната директория C:\, а ако изпълним cd ..\Pesho, ще попаднем в C:\Documents and Settings\Pesho (ако има такава директория). В коренната директория, разбира се, командата cd .. просто нищо не върши, но и не предизвиква съобщение за грешка. Примерите тук давам в DOS/Windows, но механизмът работи по съвършено същия начин и в линукс.
Стана ли ясно сега какво е относително описание за достъп до файл или директория?
Специалното име на директория „една точка“ (.) сочи винаги към работната, към актуалната директория.
„Тая щуротия пък за к’во е!“ — пита се човек, когато се сблъска за първи път с тоя факт. Знаете ли, много е удобно! Понякога пътят до работната директория е дълъг и досаден за писане, та съкращението му до точка е много удобно. А най-необходимо е това съкращение, ако пишете програмка (сценарий) за bash, например — така ще може да изпълнявате програмката в която и да било директория, а тя ще замества точката с работната директория.
Колко файла има в директорията?
Хайде да поставим въпроса обратно — а колко файла е разумно да има в директорията?
Ама простият отговор е съвсем очевиден — колкото виждате на един екран. Е, добре, нека на екран и половина.
Щом започнете да листите многократно директорията, щом започнете да се затруднявате да намерите файла, който току-що създадохте, значи директорията ви е претрупана, значи трябва да създадете поддиректории и да структурирате данните си.
А това винаги е възможно.
Ако сте много трудолюбив и имате, например, 120 статии в директория articles, какво ви пречи да ги разпределите по издания в поддиректории be (Български език), bel (Български език и литература), se (Съпоставително езикознание), L (Language)?
Ако сте прочели съветите ми за имена на файлове и се придържате горе-долу към тях, това няма да ви отнеме много време. Но ако сте писали statiya1, statiya2 и т. н., сега ще си отворите много работа. Използвайте момента, за да преименувате файловете си със смислени имена.
И все пак — колко файла има в директорията?
Графичните файлови менажери обикновено показват подробности: брой на файловете, брой на директориите, заемано място на диска. Windows/File Explorer спестява тази информация, та за да я намерите, трябва да чукнете с десния клавиш на мишката върху директорията, чието съдържание ви интересува. От контекстното меню изберете Properties, а в новоотворения прозорец изберете раздела General. Ще видите нещо подобно:
 
Properties
 
Примерчето тук е от XP, ама в Windows 7 нещата стоят горе-долу по същия начин. С тази разлика, че във „виртуалната директория“ Libraries диалоговият прозорец Properties дава информацията за препратката, а не за реалното положение на нещата.
Както обикновено, в конзолата работата се върши по-лесно, и информацията, която може да извлечете, е повече.
Ето пример от изпълнението на командата dir в Command Prompt на Windows XP:
 
dir in Command Prompt
 
Последните два реда след списъка дават информация за бройката на файловете и на директориите, свободното място на диска и мястото, което заемат само файловете в тази директория.
В конзолата на линукс това може да стане така:
 
ls and du in linux terminal
 
Я виж ти! Конзолата можело да не е непременно черна с бели букви!
Командата ls (от list) прилича на dir в Command Prompt на Windows — тя показва списък на файловете и директориите. С атрибута -1 (с арабска цифра 1) се инструктира командата да извежда в една колона само имената на файловете и директориите без никаква допълнителна информация. А на нас точно това ни трябва.
С оператора | се прави една любима хватка в конзолата, много полезна — резултатът от работата на програмата ls не се печата на конзолата, а се подава за обработка на следващата програма wc. Името й изглежда малко странно, ама е съкращение от word counter. Тя брои символите, „думите“ и редовете в текстов файл, а с атрибута -l (малка латинска буква l от line) се инструктира да показва резултата само от преброяването на редовете.
На следващия ред се вижда резултатът: 6. Шест са файловете и поддиректориите в /usr/share/dict в момента.
 
Забележка 1. В много екранни шрифтове разликата между цифрата 1 и малката латинска буква l е трудно забележима. Това създава условия за много грешки и недоразумения. Та не е лошо да се обяснява „с думи“ за кой символ се говори. А в програмни текстове избягвайте малката латинска буква l като име (идентификатор), за да си нямате неприятности.
Забележка 2. Този механизъм — една програма да предава създаваните от нея данни като входни данни за следващата — англоезичните информатици наричат pipe, а у нас го преведоха на времето си, по моему много сполучливо, като конвейерна обработка. Той, разбира се, съществува и в Command Prompt на Windows, но в линукс се използва много по-широко. И пак този процес стои зад възможността в cream да се прилагат външни програми към текста (погледнете cream в режим „експерт“). Пак по същата причина (за да се използват в конвейерна обработка) програмите в линукската конзола (и в подобните на UNIX системи) дават само необходимата работна информация или могат да бъдат инструктирани да извеждат информацията в различен формат, удобен за по-нататъшна обработка.
Програмата du (съкращение от disk usage) може да извлича разнообразна информация колко място на диска заемат файловете и директориите. Без повече указания тя дава размера на работната директория (нали запомнихте какво означава точката?), ама го дава в блокове — в примера по 1024 байта. С атрибута („ключето“) -h (от human readable) привеждаме тази информация към по-обичаен вид. Атрибутът -h се използва и в други програми със същото значение. Пробвайте в линукската конзола ls -l и ls -lh, за да видите разликата.
Надявам се, стана ясно — файловата система 1) организира данните върху външно запомнящо устройство, най-често — енергонезависимо; 2) тя представлява онзи софтуерен слой между запомнящото устройство и операционната система, който, от една страна, създава организацията на данните върху запомнящото устройство, а от друга, предоставя на операционната система „стандартизиран“ (тоест, независещ от физическите характеристики) начин за работа със запомнящото устройство. Така на файловата система можем да гледаме като на преводач — тя „превежда“ на операционната система информацията от запомнящото устройство и обратното.
От гледище на потребителя (ако изобщо има достъп до файловата система, не винаги е така) всички файлови системи изглеждат приблизително еднакво: списъци от файлове и възможност да се правят директории, за да се структурират списъците от файлове.
Отвътре файловите системи са много различни, първо, защото работят с различни физически устройства, а вече и по мрежата, в облак, например; второ, защото са много производителите им и си поставят различни цели.
В общи линии всяка операционна система си има и „родна“, нейна си файлова система. Което съвсем не означава, че дадена операционна система не може да работи с „чужди“, не нейни файлови системи — нали стана ясно, файловата система е посредник между операционната система и организацията на запомнящото устройство и този посредник може да бъде реализиран като драйвер или модул, който да се извиква при нужда.
Сега ще спомена по две думи за онези файлови системи, с които има вероятност да се срещнете.
FAT32 — това е „стара“ файлова система, разработвана най-вече от Microsoft и станала известна чрез Windows 98. Тя поддържа „дълги“ имена на файлове и хич не изглежда зле, но някои ограничения, заложени в нея, вече са поостарели. Въпреки това тя се използва и днес — флаш паметите („флашките“) най-често са форматирани с нея. Практически всички операционни системи могат да работят с нея.
Ама все пак за нещо трябва да ви предупредя (Виктор Любенов ми обърна внимание, че съм го пропуснал — Господ да го благослови!). Максималната дължина на файла във FAT32 е 4 GB, а „флашките“ вече са по 8, 16, 32, 64 GB… Та се опитвате да прехвърлите на някое приятелче DVD във вид на „картинка“ (.iso), ама то е 4.4 GB. Няма да стане. Не се чудете защо.
NTFS — съвременната файлова система на Windows, макар първата й версия да е от 1993 г., това е много прозорливо проектирана файлова система, с всичко необходимо днес, а най-вероятно и утре, и няма да остарее скоро. Единственият й недостатък е, така да се каже, „наследствен“ — фрагментацията на файловете. Затова в Windows и досега включват дефрагментираща програма, но в съвременните версии на Windows тя периодично се пуска във фонов режим (тоест, без да пречи на работата ви). Повече подробности вижте, например, на страницата HTG Explains: Do You Really Need to Defrag Your PC?.
Днес май на всички сглобки на линукс може да работите с дискове с NTFS без проблеми. Ако все пак възникне някакъв проблем с тази файлова система, потърсете програмния пакет ntfs-3g в хранилищата.
ext4 — „официалната“ файлова система към ядрото на линукс днес, която се предлага по подразбиране в повечето сглобки на линукс и която замени предишната ext3. Може би следващата „официална“ файлова система към линукс ще бъде btrfs.
ISO 9660 — Това е най-често използваната файлова система за оптични дискове (CD и DVD). От такъв оптичен диск може да се направи файл (с разширение .iso). Наричат такъв файл image — и наистина, той е точна „картинка“ на диска и от него може да бъде възстановен оптичният диск. Тази техника се използва широко в интернет за разпространение на софтуер, филми, музика, игри.
Ако никога не сте правили оптичен диск от файл .iso, възможно е да направите една грешка — да копирате файла .iso върху оптичния диск и така да го похабите. Не се притеснявайте, случвало се е на всеки. Програмите, с които се записват оптични дискове, знаят как да работят с файлове „картинки“ (.iso) — просто намерете в списъка на файловете необходимия ви файл .iso и чукнете два пъти с левия клавиш на мишката върху него. Програмата ще го отвори и ще извади от него цялата структура на директории и файлове, които трябва да създаде върху оптичния диск. Сега пускайте записа (burn).
Ако търсите още информация, погледнете в уикипедията List of file systems и Comparison of file systems.