# Работа с файлами и папками в linux

В отличии от windows, в linux нет дисков C, D, E.. Есть только корень файловой системы `/`, в котором создаются папки и файлы, а также к любой пустой папке можно подключить другой диск. И после подключения этого диска, его содержимое можно будет посмотреть например в директории `/run/media/disk` (Это только пример. реальное расположение диска можно узнать, введя команду `lsblk`).

Папка пользователя называется домашней папкой, и обычно находится в `/home/user_name`. Например папкой пользователя `kaya613` будет `/home/kaya613/`. Также, вместо пути к домашней папке можно использовать `~`

Чтобы посмотреть файлы и папки, находящиеся в текущей папке, можно воспользоваться командой `ls`.
```
$ ls
 Desktop   Documents   Downloads  'вв с похмелья.jpg'
```
Чтобы также увидеть скрытые файлы и папки (в linux все файлы, имя которых начинается с точки, являются скрытыми), воспользуемся командой `ls` с коротким аргументом `-a`
```
$ ls -a
 .    .bash_logout    .bashrc   Desktop     Downloads	 .oh-my-zsh-cache   .viminfo		  .zcompdump-stripwire-5.8   .zshrc
 ..   .bash_profile   .cache    Documents   .oh-my-zsh	 .screenrc	    .zcompdump-siie-5.8   .zsh_history		    'вв с похмелья.jpg'
```
А чтобы увидеть подробную информацию о файлах и папках, можно использовать короткий аргумент `-l`
```
$ ls -l
итого 548
drwxr-xr-x 2 kaya613 users   4096 авг 27 09:56  Desktop
drwxr-xr-x 2 kaya613 users   4096 авг 27 09:56  Documents
drwxr-xr-x 2 kaya613 users   4096 авг 27 09:57  Downloads
-rwxr-xr-x 1 kaya613 users 544891 авг 27 09:57 'вв с похмелья.jpg'
```
Также, короткие аргументы можно комбинировать
```
$ ls -la
итого 692
drwx------  8 kaya613 users   4096 авг 27 10:04  .
drwxr-xr-x  6 root root    4096 авг 27 09:55  ..
-rw-r--r--  1 kaya613 users     21 мая 22 15:29  .bash_logout
-rw-r--r--  1 kaya613 users     57 мая 22 15:29  .bash_profile
-rw-r--r--  1 kaya613 users    141 мая 22 15:29  .bashrc
drwx------  3 kaya613 users   4096 июн 17 11:38  .cache
drwxr-xr-x  2 kaya613 users   4096 авг 27 09:56  Desktop
drwxr-xr-x  2 kaya613 users   4096 авг 27 09:56  Documents
drwxr-xr-x  2 kaya613 users   4096 авг 27 09:57  Downloads
drwxr-xr-x 10 kaya613 users   4096 июн 17 11:39  .oh-my-zsh
drwxr-xr-x  2 kaya613 users   4096 июн 17 11:39  .oh-my-zsh-cache
-rw-r--r--  1 kaya613 users   3729 фев  6  2020  .screenrc
-rw-------  1 kaya613 users  10456 июн 17 11:48  .viminfo
-rw-r--r--  1 kaya613 users  43333 авг 27 09:56  .zcompdump-siie-5.8
-rw-r--r--  1 kaya613 users  43302 июн 17 11:39  .zcompdump-stripwire-5.8
-rw-------  1 kaya613 users    735 авг 27 10:04  .zsh_history
-rw-r--r--  1 kaya613 users   3611 июн 17 11:39  .zshrc
-rwxr-xr-x  1 kaya613 users 544891 авг 27 09:57 'вв с похмелья.jpg'
```
Ещё после команды ls можно написать путь к папке, содержимое которой мы хотим посмотреть
```
$ ls -lh ../../usr
итого 508K
drwxr-xr-x   6 root root 132K авг 26 17:18 bin
drwxr-xr-x 488 root root  40K авг 26 17:18 include
drwxr-xr-x 244 root root 248K авг 26 17:18 lib
drwxr-xr-x  31 root root  40K авг 25 06:54 lib32
lrwxrwxrwx   1 root root    3 авг 21 14:19 lib64 -> lib
drwxr-xr-x  11 root root 4,0K июл 18  2019 local
lrwxrwxrwx   1 root root    3 авг 21 14:19 sbin -> bin
drwxr-xr-x 288 root root  20K авг 26 17:18 share
drwxr-xr-x   6 root root 4,0K авг 25 06:54 src
drwxr-xr-x   3 root root 4,0K июл 31 20:24 var
```
Здесь, аргумент `h` переводит размер файлов в более понятный формат. `..` в пути означает, что мы хотим подняться на папку выше. Например если мы будем находиться в `/home/kaya613/`, то путь `..` будет означать `/home/`.<br>
В предыдущей команде можно было использовать путь `/usr`, и получился бы тот же результат.

В подробном выводе `ls`, первый символ означает тип объекта:
- `-`- файл
- `d`- папка
- `l`- ссылка

Чтобы узнать, в какой папке мы находимся, можно использовать команду `pwd`
```
$ pwd
/home/kaya613
```
Для создания папок используется команда mkdir
```
$ mkdir notafile
```
Для удаления папки со всем её содержимым, используется команда `rm -rf`
```
$ rm -rf notafile
```
Можно создать папку, и сразу внутри неё ещё одну папку. В таком случае, нужно будет добавить аргумент `p`
```
$ mkdir -p notafile/dir
```
Создание пустого файла или обновление времени редактирования файла
```
$ touch filename
```
Для удаления файла используется команда `rm`
```
$ rm .zhistory
```
cp, mv, less, cut
