Linux du скрытые папки

Обновлено: 07.07.2024

Иногда возникает необходимость посмотреть сколько места занимают файлы в определённой папке и найти самые большие файлы для того чтобы их удалить. Конечно, для решения этих задач существует множество инструментов, но самый простой из них, это утилита du. Она позволяет вывести размер всех файлов в определённой папке в байтах или в более удобном формате.

В сегодняшней статье мы разберемся что из себя представляет команда du Linux, а также как ею пользоваться для решения ваших рабочих задач.

Синтаксис и опции команды du

Синтаксис команды очень простой. Вам достаточно передать ей опции и путь к папке с которой следует работать:

$ du опции /путь/к/папке

А вот опции утилиты:

  • -a, --all - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
  • -B, --block-size - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
  • -c, --total - выводить в конце общий размер всех папок;
  • -d, --max-depth - максимальная глубина вложенности директорий;
  • -h, --human-readable - выводить размер в единицах измерения удобных для человека;
  • --inodes - выводить информацию об использованию inode;
  • -L, --dereference - следовать по всем символическим ссылкам;
  • -l, --count-links - учитывать размер файла несколько раз для жестких ссылок;
  • -P, --no-dereference - не следовать по символическим ссылкам, это поведение используется по умолчанию;
  • -S, --separate-dirs - не включать размер подпапок в размер папки;
  • --si - выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
  • -s, --summarize - выводить только общий размер;
  • -t, --threshold - не учитывать файлы и папки с размером меньше указанного;
  • --time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
  • -X, --exclude - исключить файлы из подсчёта;
  • -x, --one-file-system - пропускать примонтированные файловые системы;
  • --version - вывести версию утилиты.

Здесь перечислены не все опции. Если вам надо больше, смотрите в:

Примеры использования du

Чтобы просто вывести список папок в определённом каталоге и занимаемое ими место, например, в /var выполните:


По умолчанию размер выводится в байтах. Для того чтобы размер выводился в более читабельном виде используйте опцию -h:

Или вы можете указать размер блока. Тогда точность будет немного ниже, потому что минимальная единица измерения - один блок. Например, для вывода размера папок в мегабайтах с размером блока в 1024 килобайт используйте опцию -B с параметром M:


Если надо выводить размер не только папок, но и файлов, которые там находятся используйте опцию -a:


Для того чтобы вывести только общий размер всех файлов и папок нужно применить опцию -s:

Если вы хотите вывести размер папок без вложенных в них подпапок используйте опцию -m:


Ещё можно вывести строчку с общим размером всей папки. Правда использовать эту возможность есть смысл только с опцией -S, потому что общий размер папки во всех других случаях и так отображается:

Если вам надо исключить какие-либо файлы из подсчёта, следует использовать опцию -exclude. Например, давайте исключим все лог файлы:

du -hac --exclude="*.log"


Чтобы данные были более наглядными их желательно отсортировать. Встроенной поддержки сортировки в du linux нет, зато можно воспользоваться утилитой sort с опцией -h. Эта опция нужна чтобы сортировались единицы измерения в понятном для чтения формате:

du -h /var | sort -h


Выводы

В этой небольшой статье мы рассмотрели основные возможности команды du в Linux. Как видите, несмотря на то, что утилита очень простая, она позволяет посмотреть всё что необходимо. А какими программами вы пользуетесь для просмотра размера файлов и папок? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Я хочу оценить объем дискового пространства, используемого каталогом, используя следующую команду.

, который не вычисляет скрытые каталоги. На странице man du нет информации об этом. Как рассчитать объем дискового пространства, используемого каталогами, включая скрытые файлы.

Собственно, это доказывает:

Параметр -a используется для явного указания того, какие файлы были подсчитаны.

Используете ли вы du * ?

Эта команда показывает общий размер скрытых каталогов

FYI, для оценки размера, занимаемого различными каталогами, гораздо лучше использовать ncdu

Вы можете перемещаться по графическому интерфейсу ncurses между различными каталогами и отображать размер каждого каталога. Если я использую du, мне нужно будет выполнить команду du для каждого каталога, который я хочу проверить, что может быть громоздким. Вы можете сортировать каталоги в соответствии с размером, занимаемым также в графическом интерфейсе ncurses.

Правильная команда: du -hs $(ls -A)

du -hs .* * , как указано в другом ответе, неверно, если вы хотите перечислить все файлы и подкаталоги (включая скрытые).

Почему du ведет себя так? Поскольку вы используете -s , которые суммируют результат и что все файлы и подкаталоги являются дочерними элементами . , поэтому du -hs не перечисляет их!

Он делает, а это не так. Пример:

В домашнем каталоге: (существует только один пользователь)

в каталоге пользователя: (огромная разница между суммами)

и причина такова:

du будет вычислять скрытые каталоги при спуске в подкаталоги, но в текущем каталоге * просто не соответствует шаблону .directory_name, поэтому текущий скрытый элемент каталога будет опущен.

Мне потребовалось время, чтобы разобраться, и, как сказал shadyabhi, было бы очевидно, если бы я использовал ncdu.

Правильная команда: du -hs .* *

find -maxdepth 1 -exec du -sh "<>" \; | sort -h

  • Размер скрытых файлов /каталогов
  • Размер не скрытых файлов /каталогов
  • Общий размер текущего каталога

Он также сортирует результат, чтобы было легко увидеть, что является самым большим. Я также сделал это псевдоним в файле

Теперь я могу просто выполнить big , чтобы найти самые большие каталоги в каталоге и sbig , когда мне нужны разрешения sudo.

Команда Linux du (Disk Usage, т.е. использование диска) – это стандартная команда Unix/Linux, используется для показа суммарной информации об использовании диска файлами и директориями. Команда du имеет много опций параметров и может выводить результаты в различных форматах. Команда du также отображает размеры файлов и директорий в рекурсивной манере.


Эта статья показывает и объясняет 10 полезных примеров команды du, которые должны помочь вам в определении размеров файлов и директорий в Linux.

1. Для определения информации о сводном использовании диска деревом директории и каждой поддиректорией, введите команду вида:

Вывод вышеприведённой команды отображает количество блоков диска в директории /home/mial а также в субдиректориях.

2. Использование с командой du опции -h предоставляет результаты в формате, понятном человеку. Имеется ввиду, что размеры будут представлены в байтах, килобайтах, мегабайтах, гигабайтах и т.д.

3. Чтобы узнать общий размера директории, т.е. сколько место занимает папка и её подпапки, используется опция -s.

4. Использование с командой du флага -a отображает использование диска всеми файлами, а не только каталогами.

5. Использование флага -a вместе с -h отображает использование диска всеми файлами и папками в понятном для человека формате. Вывод ниже легче для восприятия, поскольку он показывает размеры в килобайтах, мегабайтах и т.д.

6. Для определения использования диска деревом директории с её поддеревьями в килобайтах, используйте опцию -k (отображает размер в единицах по 1024 байта).

7. Для получения суммарного использования диска деревом директории вместе с его поддиректориями в мегабайтах используйте -mh. Флаг -m считает блоки в единицах мегабайты, а -h здесь для понятного человеку формата.

8. Флаг -c выводит последнюю строку с суммарным размером («итого»).

9. Следующая команда подсчитывает и отображает использование диска всеми файлами и директориями, но исключает файлы, которые соответствуют заданному образцы. В примере команда при расчёте размера директории исключает файлы «.txt». Таким образом вы можете исключить любые форматы файлов, используя флаг --exclude. Обратите внимание на вывод – в нём нет записей с файлами txt.

10. Для показа вместе с информацией о занимаемом месте информации о времени последней модификации любого файла в директории или в любых поддиректориях используется флаг --time.

Данная статья будет полезна для начинающих пользователей и позволит работать с серверами быстрее и удобнее, даже если вы раньше не пользовались Linux.

  • создавать файлы и папки
  • перемещать и копировать файлы и папки
  • узнаете о ссылках
  • сможете легко переносить файлы на сервер, с него и между серверами.



Примеры продемонстрированы на VPS от Infobox и на облачных VPS.

Для работы с сервером подключитесь к нему по SSH.

Как узнать абсолютный путь к директории?

Для того, чтобы узнать абсолютный путь к папке, где вы находитесь, используйте команду:



Как перейти в нужную директорию?

Для того, чтобы перейти в нужную директорию, используется команда:
, где вместо <директория> нужно подставить путь к ней.
Путь может быть абсолютным или относительным.

Абсолютный путь

Абсолютный путь всегда начинается от корня файловой системы /.
Например, для того, чтобы перейти по абсолютному пути с помощью команды cd в папку /var/logs используйте команду:

Относительный путь
  • . — означает текущую директорию
  • .. — означает директорию выше этой по иерархии.

Мы сказали «перейди в директорию, лежащую выше этой по иерархии».

Давайте теперь перейдем в директорию root:

Это означает «перейди в директорию root, которая находится в директории, в которой мы сейчас находимся».
То же самое можно сделать, используя обозначение текущей директории:

Из любого места мы можем перейти в домашнюю директорию, используя команду:

Как просмотреть содержимое директории?

Для просмотра списка файлов и папок в директории воспользуйтесь командой:

  • ls -l – показать дополнительно список прав, размеры файлов, дату изменения и владельца;
  • ls -a – показать все, включая скрытые файлы;
  • ls -la – показать все, включая скрытые файлы, список прав, размеры файлов, дату изменения и владельцев;

Можно просмотреть дерево директорий с помощью команды:

В Debian и Ubuntu это можно сделать с помощью команды:

В CentOS и Oracle Linux:


Результат работы tree выглядит так:


Сколько свободного и занятого места?

Для того, чтобы узнать, сколько занятого и свободного места на диске, воспользуйтесь командой:



Как мы видим, объем диска 20 гигабайт, занято 2.9 гигабайта, свободно 16 гигабайт.

Для того, чтобы узнать размер директории или файла, воспользуйтесь командой:



Как найти файл или директорию

В этом вам поможет утилита find.

В самом простом случае использoвать ее можно так:

Будет осуществлен поиск файла или директории с именем file начиная от корневой директории /.



Опция -name чувствительна к регистру (различает заглавные и строчные буквы). Если вы не знаете, заглавные или строчные буквы используются в названии искомого файла, воспользуйтесь опцией -iname. С помощью опции -regex или -iregex можно найти что-то соответствующее регулярному выражению.

Команда find с параметром -exec позволяет выполнить команду для всего найденного.

Найдя любой файл с расширением .docx он будет скопирован в директорию /tmp.

Для того, чтобы найти, где располагается бинарный файл программы, исходные тексты и документация воспользуйтесь командой whereis:



Если вам необходимо найти только исполняемые файлы программ, которые указаны в путях переменных окружения, воспользуйтесь командой which:


Как создать директорию?

Для создания директории используйте команду mkdir.

Например, создадим в текущей директории директорию «foo»:

Для создания директорий и поддиректорий используйте команду mkdir -p:



Как удалить файл или директорию?

Для удаления воспользуйтесь командой rm:
rm file1.txt
Чтобы удалить и вложенные файлы и папки, добавьте параметр -r:

Если вы не хотите, чтобы вам был задан вопрос, спрашивающий разрешение на удаление, используйте параметр -f:


Если вы хотите удалить только пустую директорию, вам поможет команда rmdir:

Если директория не пустая, вы получите уведомление и удаление не будет выполнено.

Как переместить или переименовать файл или директорию?

Для перемещения файла или директории используйте команду mv:



Переименование можно представить, как перемещение в ту же директорию с другим именем.
Давайте переименуем директорию suda в tuda:



Заметьте, что вы можете переместить и переименовать файл или директорию в одну команду при необходимости. Для этого в правой части напишите уже новое имя:



В данном примере мы переместили директорию tuda в директорию /var/www и переименовали в site.

Как скопировать файл или директорию

Скопировать файл можно с помощью команды cp:



Можно скопировать сразу несколько файлов в директорию, указанную в последнем параметре:


Для копирования директорий используйте параметр -r:



Так же вам может пригодиться параметр -u для копирования больших файлов и директорий. С его помощью будет выполняться копирование только если копируемый файл новее, чем существующий.


Создаем ссылки

Есть два типа ссылок: жесткие ссылки и символические ссылки.

Жесткие ссылки

Жесткие ссылки — это указатели на файлы. Всегда существует минимум одна жесткая ссылка на файл. Сам файл находится где-то на жестком диске и у него есть уникальный номер. Имя файла хранится отдельно в файловом индексе (inode). Также в файловом индексе содержится тот же уникальный номер. Файловый индекс — жесткая ссылка на файл. При создании еще одной жесткой ссылки появляется еще одна запись в файловом индексе со ссылкой на файл и тем же номером. Сам файл удалится только если будут удалены все жесткие ссылки на него.
Жесткая ссылка создается командой:

Можно убедиться, что уникальные номера файлов с жесткими ссылками одинаковы командой:


Символические ссылки

Символическая ссылка — специальный файл, указывающий на документ в другом месте дисковой иерархии. При удалении такой ссылки файл останется на месте. При удалении исходного файла или перемещении исходного файла ссылка тоже останется на месте, но будет вести на несуществующий адрес.

Создать символическую ссылку можно командой:


Как создать пустой файл

Для этого используйте команду:


Как отредактировать текстовый файл

Редактировать текстовые файлы нужно часто при настройке серверов и не только. В данном разделе мы дадим только вводную информацию. В дальнейшем вы можете изучать редакторы более глубоко.

nano – это простой редактор с графическим интерфейсом.
Для установки на CentOS или Oracle Linux выполните команду:

Для установки на Ubuntu и Debian используйте команду:

Для редактирования файла введите:



Редактировать можно сразу же после открытия редактора. Для сохранения изменений и выхода нажмите ctrl + X (^ в подсказках редактора обозначается, как нажатие на кнопку ctrl).



Будет предложено записать изменения на диск, нажмите Y.



На этом шаге можно изменить имя сохраняемого файла. Если это не требуется, просто нажмите Enter.



Мы видим, что изменения успешно записались в файл.

Если вы захотите научиться работать с текстовыми файлами эффективнее, рекомендуем изучать редакторы vim и emacs, но на начальном этапе знакомства с Linux без них можно обойтись.

Как скопировать файл или директорию по SSH на сервер и обратно

Соединение по SFTP с помощью Filezilla

Вы можете воспользоваться Filezilla и настроить соединение по STFP.
Установите клиент, нажмите кнопку создания нового подключения, как показано на скриншоте ниже:



Создайте новый сайт, укажите ip–адрес сервера, тип подключения SFTP, логин и пароль доступа к серверу и нажмите «Connect» (Соединиться).



Разрешите подключение к серверу в следующем окне.



Теперь соединение успешно установлено, вы можете перемещать данные на сервер и с сервера.


Копирование данных с помощью scp

Этот способ особенно полезен, если вы хотите переносить данные между серверами.

На вашем компьютере запустите терминал или Cygwin в Windows (руководство по установке Cygwin есть в этой статье).

Для копирования файла используйте команду:

Для копирования папки используйте команду:


Встает вопрос, как же указать местоположение на удаленном сервере. Это делается в формате:

Например, давайте скопируем папку на удаленный сервер в папку пользователя (



Или давайте скопируем ее в папку /var/www:

Теперь давайте вернем папку temp из /var/www на наш компьютер:

– папка пользователя на нашем компьютере.

Данный способ удобно использовать и для переноса данных между серверами.

Примечание для тех, кто копирует сайт в директорию веб-сервера

Убедитесь с помощью команды ls -la, что папка с сайтом (например /var/www/html) и сами файлы сайта доступны от пользователя, под которым работает веб-сервер. Для apache чаще всего пользователь: www-data. Если у вас файлы в папке сайта принадлежат пользователю root – сайт скорее всего не будет открываться.



Для изменения прав воспользуйтесь командой:

Файловый менеджер для Linux

Спасибо, что дочитали статью до конца. Напоследок расскажем о графическом файловом менеджере для Linux Midnight Commander или просто mc.

Установка mc в CentOS или Oracle Linux:

Установка mc в Ubuntu или Debian:


Запустить файловый менеджер можно просто командой




Это классический двухпанельный файловый менеджер. Вы можете использовать функциональные кнопки компьютера f1… для операций согласно подсказкам на экране. С его помощью можно редактировать файлы, создавать папки, перемещать и копировать папки и файлы и многое многое другое. Этот менеджер может быть полезен на начальном этапе знакомства с Linux.

Для выхода из mc нажмите F10 и Enter.

Если вы нашли ошибку в статье, считаете, что нужно добавить что-то важное или просто у вас есть вопрос — напишите нам.

Читайте также: