В этом сценарии рассматриваются типы файлов в UNIX: простые файлы, каталоги, ссылки. Изучаются команды создания и копирования файлов. Показывается разница между жесткими и символическими ссылками, между копированием и переносом файла.
Начальные условия: Командная строка. Каталог test после предыдущего сценария.
1. Cоздать пустой файл с помощью команды touch first.txt:
8. Посмотреть расширенную информацию о каталоге, используя ключ -l команды ls. ls -l test:
9. [user@localhost test]$ ls -l10. total 411. -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txtdrwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
12. Добавить псевдоним командной оболочки, чтобы сократить размер команды, с помощью команды alias ls='ls -F -l':
13. [user@localhost test]$ alias ls='ls -F -l'14. [user@localhost test]$ ls test15. total 416. -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txtdrwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
17. Посмотреть глубже на каталог test, используя ключи -a и -i. ls -a -i
18. [user@localhost test]$ ls -a -i19. total 420. 1014 drwxr-xr-x 3 user user 100 Feb 14 20:07 ./21. 941 drwx------ 8 user user 340 Feb 14 19:28 ../22. 1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Первый столбец — номера индексных узлов файловой системы. Третий столбец — число жёстких ссылок файла.
23. Скопировать файл с помощью команды cp first.txt copy1.txt:
24. [user@localhost test]$ cp first.txt copy1.txt25. [user@localhost test]$ ls -a -i 26. total 827. 1014 drwxr-xr-x 3 user user 120 Feb 14 20:33 ./28. 941 drwx------ 8 user user 340 Feb 14 19:28 ../29. 1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt30. 1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет свой собственный индексный узел.
31. Переименовать файл с помощью команды mv first.txt orig.txt. mv first.txt orig.txt:
32. [user@localhost test]$ mv first.txt orig.txt33. [user@localhost test]$ ls -a -i34. total 835. 1014 drwxr-xr-x 3 user user 120 Feb 14 20:37 ./36. 941 drwx------ 8 user user 340 Feb 14 19:28 ../37. 1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt38. 1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 orig.txt1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Отметим, что изменилось только имя файла, все остальные атрибуты остались прежними.
39. Создать жёсткую ссылку командой ln orig.txt copy2.txt:
40. [user@localhost test]$ ln orig.txt copy2.txt41. [user@localhost test]$ ls -a -i42. total 1243. 1014 drwxr-xr-x 3 user user 140 Feb 14 20:41 ./44. 941 drwx------ 8 user user 340 Feb 14 19:28 ../45. 1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt46. 1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt47. 1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Добавилась ещё одна ссылка на тот же файл, число ссылок увеличилось на 1.
48. Создать символическую ссылку командой ln -s orig.txt orig.lnk:
49. [user@localhost test]$ ln -s orig.txt orig.lnk50. [user@localhost test]$ ls -a -i51. total 1252. 1014 drwxr-xr-x 3 user user 160 Feb 14 20:45 ./53. 941 drwx------ 8 user user 340 Feb 14 19:28 ../54. 1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt55. 1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt56. 1083 lrwxrwxrwx 1 user user 8 Feb 14 20:45 orig.lnk -> orig.txt57. 1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет новый индексный узел и размер, равный имени файла orig.txt.
58. Сравним содержимое файлов при обращении к ним по имени: