- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Linux: команды для работы с файлами и директориями
- Основы
- Команды для работы с файлами и директориями
- Как получить список всех папок и файлов в Linux?
- Вывод файлов и папок столбцом
- Сортировать папки и файлы по размеру
- Быстрый способ написано ls
- Еще много чего можно сделать с помощью ls
- Как вывести список только каталогов в Linux
- Используйте команду ls для вывода только списка каталогов
- Список только подкаталогов в определенном каталоге
- Используйте комбинацию команды ls и grep
- Используйте команду поиска, чтобы вывести список только каталогов
- Используйте команду tree для вывода списка только каталогов
- Использование команды echo для вывода списка каталогов
- Команды Linux для работы с файлами
- 1. ls — просмотр содержимого папки
- 2. cd — изменить папку
- 3. rm — удалить файлы
- 4. rmdir — удалить папку
- 5. mv — перемещение файлов
- 6. cp — копирование файлов
- 7. mkdir — создать папку
- 8. ln — создание ссылок
- 9. chmod — изменить права
- 10. touch — создать файл
- 11. mc
- Выводы
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Linux: команды для работы с файлами и директориями
4 минуты чтения
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/tmp/file1 — относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
- cd — смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root ;
- pwd — команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
- ls — вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax , то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
- cat — показывает содержимое файла, к примеру – cat /root/file.txt ;
- tail — например, tail /root/file.txt , выводит только конец файла, удобно при работе с логами;
- cp — копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
- mkdir — создание директории, например, mkdir /root/1 ;
- rmdir — удаление директории, синтаксис такой же, как и у команды выше;
- rm -rf — очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
- mv — переименование файла или директории, сначала указывается целевая директория и затем её новое название;
- locate — поиск файла с заданным названием;
Для наглядности, посмотрите на вывод команды tail
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком 🙂
- tar cf example.tar /home/example.txt — создание .tar архива, который будет содержать в себе текстовый файл example.txt;
- tar cjf example1.tar.codez2 /home/example1.txt — команда с тем же функционалом, только будет использоваться сжатие Bzip2;
- tar czf example2.tar.gz /home/example2.txt — опять архивация, только на этот раз со сжатием Gzip;
- tar xf example.tar — распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution 🙂 Команды требуют наличие прав супер — пользователя.
- rpm -qa — вывод списка всех установленных RPM пакетов в системе;
- rpm –i rpmpackage.rpm — установка пакета с именем rpmpackage;
- rpm –e rpmpackage — удаление пакета с таким именем;
- dpkg -i *.rpm — установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS — сервер)
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Как получить список всех папок и файлов в Linux?
В Unix OS (Linux) получить список файлов и папок можно несколькими способами. Я распишу лишь один из них — самый распространенный, а также некоторые метод помощники, который помогут вам в работе в файлами.
Внимание! «$» будет обозначать начало консольной команды, вводить в консоль его не нужно.
Самый распространенный способ — это использовать ls :
В ответ вы должны получить что-то подобное на это:
В одну строчку список всех файлов в директории, где вы находитесь. Не удобно, не правда ли? Давайте сделаем вывод столбцом.
Вывод файлов и папок столбцом
Где -a обозначает показывать все файлы, даже . и .. . . — означает текущая директория, .. на одну директорию назад, а -l означает использование длинного синтаксиса вывода списка файлов и папок.
Чтобы не писать параметры в формате как «ls -a -l» вы можете группировать их (писать друг за другом), как показано на примере выше.
Пример вывод команды выше будет следующий:
В данном случае, ничего интересного, потому что выводятся две папки и ls не показывает для них размер файла и некоторые другие данные. Ниже будет представлен пример с файлами.
Сортировать папки и файлы по размеру
Сортировать можно по:
Расшифровка:
- По пустому значению, что в принципе логично
- По времени
- По размеру
- По расширению, например показать только php файлы
- Или по версии файла
Пример сортировки по размеру файлов и папок:
В этой случае логичнее распределить параметры с помощью тире(«-«), потому что написанное становится читабельнее.
В ответ вы должны получить что-то на подобии этого:
Как видно, в четвертой колонке, такие числа как 123916 (третья строка) — обозначают размер файла и не очень читаются. Давайте сделаем читабельный вид, добавив -h параметр, который означает «человеческий вид размера файла».
В итоге у вас должно получиться что-то похожее на это:
Сразу стало намного лучше 🙂
Быстрый способ написано ls
Мне часто было лень писать:
И в дальнейшем я нашел альтернативный способ:
В формате «ll» вы также можете прописывать -h, -S —sort=size и т.д. — это лишь укороченный формат
Еще много чего можно сделать с помощью ls
Все что можно сделать с помощью этой команды, я не смогу вместить в этот пост, думаю, что это самое основное, что может вам понадобиться.
Остальные команды вы можете посмотреть командой ls —help .
Вот список всех доступных команд:
Да-да, они на английском, поэтому учите английский или переводите определенную команду и пробуйте сами как это работает, потому что без практики мало что получиться.
Для того, чтобы вы полностью вникли во все команды, нужно некоторые моменты объяснить вам.
Когда, например, вы видите следующий формат:
Это означает, что сначала нужно указать -S , а за ним —sort или —time , то есть в итоге у вас получится -S —sort или -S —time .
Источник
Как вывести список только каталогов в Linux
Главное меню » Linux » Как вывести список только каталогов в Linux
По умолчанию в нем отображается все содержимое, будь то файл, каталог, ссылка или именованный канал.
Но что, если вы хотите перечислить только каталоги?
Как и все в Linux, есть несколько способов выполнить одну и ту же задачу. Список только каталогов ничем не отличается:
- ls -d */
- ls -l | grep ‘^d’
- find . -maxdepth 1 -type d
- echo */
- tree -d -L 1
Используйте команду ls для вывода только списка каталогов
Всегда полезно делать это с помощью знакомой команды ls, потому что это команда, которую вы используете для отображения содержимого каталога.
Чтобы вывести список только подкаталогов , используйте параметр -d с командой ls следующим образом:
Вот результат, который он показывает:
Почему */? Потому что без него ls -d будет возвращено только имя каталога. В списке опции -d каталоги не его содержимое (который включает в себя файл, каталоги и т.д.).
Это */ – шаблон. С помощью * вы перечисляете все содержимое (включая содержимое подкаталогов), а шаблон / ограничивает каталоги.
Вы можете комбинировать его с опцией длинного листинга -l и большинством других опций:
Если вам не нужна завершающая косая черта (/) в конце имен каталогов, вы можете использовать команду cut, чтобы вырезать ее:
Список только подкаталогов в определенном каталоге
Вышеупомянутая команда работает в текущем каталоге. Что делать, если вы не в том же каталоге?
В этой ситуации вы можете использовать */в конце пути к каталогу ls -d:
Вот пример, когда мы выходим из каталога Documents и затем перечисляю только каталоги внутри каталога Documents:
Вы заметили, что в нем нет скрытого каталога? Это один из недостатков этого метода. Вы можете использовать ls -d .*/ для отображения скрытых каталогов, но он отображает только скрытые каталоги.
Используйте комбинацию команды ls и grep
Вы всегда можете положиться на старую-добрую команду grep для фильтрации вывода для определенного контента.
Если вы долго перечисляете содержимое, вы можете идентифицировать каталоги, потому что начните с d.
Вы можете использовать grep для фильтрации содержимого, которое начинается с d:
Но это дает вам гораздо больше полей, чем просто имена каталогов:
Используйте команду поиска, чтобы вывести список только каталогов
Вот как использовать команду find для вывода списка только подкаталогов:
Надеюсь, вы знакомы с командой find. Тем не менее мы объясним.
С помощью type d вы просите команду find искать только каталоги.
С помощью maxdepth 1 вы просите команду find сохранить поиск только на текущем уровне (и не заходить в подкаталоги).
Как вы можете видеть в выводе выше, он также показывает скрытый каталог.
Используйте команду tree для вывода списка только каталогов
Если ваша цель – перечислить только каталоги, вы также можете использовать команду tree.
По умолчанию команда tree дает вам полную структуру каталогов. Вы можете изменить его, чтобы отображались только каталоги и только на текущем уровне.
- d – искать только каталоги
- a – ищите также скрытые файлы и каталоги
- i – убрать древовидную структуру с дисплея
- L 1 – не заходить в подкаталоги
Использование команды echo для вывода списка каталогов
Маловероятный кандидат? Вы будете удивлены, узнав, что команда echo в Linux также может использоваться для отображения содержимого каталога. Попробуйте использовать echo * и убедитесь сами.
Подобно команде ls, вы также можете использовать шаблон */ для вывода списка только каталогов в текущем рабочем каталоге.
Вот результат, идентичный тому, что вы получили с помощью команды ls -d.
Могло быть больше способов перечислить только каталоги, а не файлы. Фактически, обсуждаемые здесь методы могут иметь некоторые «если» и «но» в зависимости от того, что вы ищете.
Если ваша цель – просто отобразить каталоги, большинство команд, которые я обсуждал, будут работать. Если вам нужно что-то более конкретное, например, получить имя каталога только с косой чертой и т. д., Вам придется выполнить некоторое форматирование самостоятельно.
Надеюсь, этот совет по Linux окажется для вас полезным. Вопросы и предложения всегда приветствуются.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команды Linux для работы с файлами
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
Вы также можете вернуться в предыдущую рабочую папку:
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
chmod +x script.sh
Чтобы убрать флаг исполняемый используйте опцию -x:
chmod -x script.sh
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Источник