Для создания файла применяется команда touch. Например, создадим в папке Documents файл "hello.txt":
eugene@Eugene:~$ touch ~/Documents/hello.txt
Для удаления файлов (а также каталогов) применяется команда rm. Например, удалим выше созданный файл "hello.txt" из папки Documents:
eugene@Eugene:~$ rm ~/Documents/hello.txt
Команду rm можно также использовать для удаления каталогов. В этом случае необходимо использовать опцию -r. Например, удаление папки "test":
eugene@Eugene:~$ rm -r ~/Documents/test
Для копирования файлов/каталогов применяется команда cp. Она имеет следующую форму:
cp source destination
Первый аргумент команды - source
обычно представляет имя каталога, файлов или шаблон файла, которые надо скопировать. Второй аргумент -
destination
представляет путь, куда надо скопировать. Например, скопируем файл "Documents/test/hello.txt" в папку "Documents":
eugene@Eugene:~$ cp ~/Documents/test/hello.txt ~/Documents/hello.txt
Другой пример - скопируем файл "Documents/test/hello.txt" в папку "Documents/test2":
eugene@Eugene:~$ mkdir ~/Documents/test2 eugene@Eugene:~$ cp ~/Documents/test/hello.txt ~/Documents/test2
В данном случае важно, что папка "test2" уже существует перед копированием. Иначе будет создаваться текстовый файл "test2" с содержимым из файла "hello.txt".
Для копирования каталогов применяется флаг -r. Например, скопируем содержимое папки "Documents/test" в папку "Documents/test4"
eugene@Eugene:~$ cp -r ~/Documents/test/ ~/Documents/test4
При этом папка test4 создается автоматически.
Шаблон файла может применять символ звездочки * для указания всех файлов. Например, команда cp ~/* /tmp
копирует все файлы из
домашнего каталога в каталог /tmp
Чтобы скопировать скрытые файлы, применяется символ звездочки. Например, команда:
eugene@Eugene:~$ mkdir ~/Documents/test5 eugene@Eugene:~$ cp .* ~/Documents/test5
cкопирует все скрытые файлы из текущего каталога в папку "Documents/test5", поскольку первый аргумент относится ко всем файлам, имена которых начинаются с точки (папка test5 должна быть предварительно создана).
Если надо скопировать еще и скрытые каталоги и их содержимое, применяется флаг -r:
cp -r .* ~/Documents/test5
Команда принимает множество опций. Отмечу некоторые из них:
-a: указывает, что свойства копируемых файлов, например, разрешения, также копируются
-b: резервное копирование. Если команда cp перезапишет существующий файл назначения, эта опция гарантирует, что сначала будет создана резервная копия этого файла назначения.
-f: если файл в месте назначения запрещает копировать файл, эта опция приведет к принудительному копированию. Это означает, что файл назначения перезаписан.
-i: при использовании этой опции cp запрашивает перезапись, если указанный файл уже существует в месте назначения.
-p: гарантирует, что атрибуты файла, такие как владельцы и разрешения, также копируются.
-r: гарантирует, что каталоги копируются рекурсивно.
-u: копируется только в том случае, если целевой файл старше исходного файла или если целевой файл не существует.
Команда mv перемещает файлы/каталоги в новое место. Она имеет следующую форму:
mv source destination
Первый аргумент команды - source
представляет каталоги/файлы, которые надо переместить. Второй аргумент -
destination
представляет путь, куда надо переместить. Например, переместим файл "Documents/test/hello.txt" в папку "Documents/test6":
eugene@Eugene:~$ mkdir ~/Documents/test6 eugene@Eugene:~$ mv ~/Documents/test/hello.txt ~/Documents/test6
В данном примере предварительно создается каталог test6, в который затем перемещается файл. Однако если бы каталога test6 не существовало, то создавался бы файл "test6", в который помещалось бы содержимое из файла "Documents/test/hello.txt"
Аналогично можно перемещать каталоги. Например:
eugene@Eugene:~$ mkdir ~/Documents/test7 eugene@Eugene:~$ touch ~/Documents/test7/helworld.txt eugene@Eugene:~$ mv ~/Documents/test7 ~/Documents/test8
Для теста здесь создается папка test7, в которой создается файл helworld.txt. Далее мы перемещаем каталог "Documents/test7" по пути "Documents/test8". Что конкретно произойдет, зависит от того, существует ли каталог "test8" или нет. Если он существует, то в нем создается подкаталог "test7" со всем содержимым из "Documents/test7". Если "test8" НЕ существует, то создается катлог "test8", в который помещается все содержимое из "Documents/test7"
Последний случай показывает, что мы можем применять команду mv для переименования. Например:
eugene@Eugene:~$ mv ~/Documents/test8 ~/Documents/test9
Если test9 не существует, то фактически test8 будет переименован в test9.
Специальная команда wc позволяет подсчитать количество слов в файле:
eugene@Eugene:~$ wc ~/Documents/test/hello.txt 32 274 1572 /home/eugene/Documents/test/hello.txt
Данная команда последовательно выводит количество строк, слов и символов.
Ссылка (link) в Linux представляет указатель на файл. Ссылка облегчает поиск нужных файлов. Символическая ссылка ссылается на имя файла. Ее можно использовать для ссылки на файл, который находится где угодно. Однако символическая ссылка зависит от исходного файла. Например, если исходный файл будет удален, символическая ссылка больше не будет работать.
Для создания символической ссылки применяется команду ln с опцией -s
. Например, для создния ссылки с именем "myhost" в домашнем каталоге,
которая ссылается на файл /etc/hosts
, используется следующая команда:
ln -s /etc/hosts ~/myhost
В результате в домашнем каталоге будет создан ярлык с именем "myhost". Этот ярлык относится к файлу "/etc/hosts". И при каждом открытии файла "myhost" фактически будет открываться файл /etc/hosts.
Для просмотра информации о ссылке можно использовать команду ls -l:
eugene@Eugene:~$ ls -l ~/myhost lrwxrwxrwx 1 eugene eugene 10 Mar 11 20:15 /home/eugene/myhost -> /etc/hosts
Первая буква l является сокращением от "link" и указывает, что это ссылка. Кроме того, в выводе выражение /home/eugene/myhost -> /etc/hosts
указывает,
на какой именно файл ссылается ссылка.