Как я получаю старое 'du' поведение назад?

Я получил решение

MakeSelf

Этот сценарий связывает мое приложение в единственный файл. позже это извлекает и выполняет сценарий оболочки.

3
27.12.2014, 21:01
2 ответа

Сообщение « Done » управляется не выполняемым процессом, а самим bash для уведомления о завершении фонового задания. Именно поэтому он предоставляет сообщение, когда есть какие-то действия консоли.

В bash для удаления такого рода сообщений можно использовать:

  • набор + m ( монитор ) не хочу их видеть.
  • набор -b ( уведомить ) для отображения сообщений без задержки.
-121--157699-

man bash говорит:

   The  shell  learns immediately whenever a job changes state.  Normally,
   bash waits until it is about to print a prompt before reporting changes
   in  a  job's status so as to not interrupt any other output.  If the -b
   option to the set builtin command is enabled, bash reports such changes
   immediately.   Any  trap  on  SIGCHLD  is  executed for each child that
   exits.
-121--157700-
du dir1 dir2

Сообщает об использовании диска всеми dir1 , dir2 и их содержимым рекурсивно. Файлы подсчитываются только один раз, в противном случае это даст неверный ответ на использование диска.

Вы можете использовать:

du -c dir1 dir2

Если вы также хотите, чтобы общий объем использования диска обоих.

Итак:

du -sc -- *

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

С помощью GNU du можно также выполнить следующие действия:

du -ad1

или

du -a --max-depth=1

Для вывода отчета об использовании диска только на одном уровне вниз (поэтому . и субдиры), используя -a для сообщения о недирах в текущем каталоге, например, du * .

Вы можете заставить GNU du несколько раз подсчитывать файлы с помощью опции -l :

du -ls -- * .

Неэффективно и вряд ли будет то, что вы действительно хотите.

3
27.01.2020, 21:14

Можно просто настроить псевдоним ', например:

$ alias abc="cd /home/user/Desktop/Folder"

Чтобы сохранить его в долгосрочной перспективе, добавьте его в файл .bashrc.

Это будет работать, если вы ищете только навигацию - однако «abc» выше не будет использоваться, если вы хотите что-либо написать.

Я лично думаю, что в долгосрочной перспективе будет так же легко узнать и запомнить [соответствующие части] вашей структуры каталогов. Слишком много псевдонимов просто дают вам больше вещей для запоминания, и они не будут работать на разных компьютерах, которые вам, возможно, придется использовать вовремя.

-121--58398-

Сигнал может быть получен из текущего процесса . Итак, если вы начнете долгоживущий процесс (он же демон) при загрузке, то вы действительно получите SIGTERM от этого процесса и сделаете все, что хотите от обработчика сигнала. Однако это худший из возможных методов: лишний процесс, ничего не делающий и просто ожидающий поступления сигнала.

У вас есть лучшие способы достичь этого, например, с помощью systemd. Файл блока ( foo.service ) будет выглядеть следующим образом:

[Unit]
Description=Perform my actions
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/path/to/your/application

Однако, имейте в виду, что из-за параллельного характера системы этот блок может быть запущен произвольно с опозданием в процессе отключения (хотя на это может повлиять тщательное использование зависимостей).

-121--93247-

Параметр -c дает общее значение, что означает, что в вашем варианте использования команда du -smc * дает почти (. заменяется на total ) с тем же выходом, что и du -sm *. с предыдущими версиями du :

$ du -smc *
34  A
23  B
57  total

Даже если у вас есть другие сценарии использования, чем тот, который указан в вашем вопросе, я думаю, что вариант -c может в любом случае помочь вам получить результат, близкий к тому, который вы используете, чтобы иметь.

3
27.01.2020, 21:14

Теги

Похожие вопросы