Это, наверное, что-то базовое, но я не могу заставить его работать. Я пытаюсь использовать DU, чтобы получить общий размер файлов минус определенные каталоги. Мне нужно исключить один конкретный каталог с именем, uploads
но не каждый каталог называется uploads
. Например, моя файловая структура выглядит примерно так:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Я могу запустить следующую команду:
du -ch --exclude=uploads*
и это дает мне размер файла минус все каталоги "загрузки". Однако при попытке исключить определенные каталоги (и все его подкаталоги) я терплю неудачу. Я пробовал варианты:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
но не могу понять это. Как исключить конкретный каталог?
command-line
disk-usage
Будет
источник
источник
username: store$ du -ch --exclude=./uploads
работал (с и без подстановочного знака) для меня, из каталога магазина. Вы выполняете эту команду точно и из папки магазина? И это должен быть относительный путь (который находит, видит / печатает), а не абсолютный.Ответы:
Вы почти нашли это :)
Обратите внимание, нет звездочки в конце. Звездочка означает, что все подкаталоги в «upload» должны быть пропущены, но не файлы непосредственно в этом каталоге.
источник
du -sb --exclude=./relative/path/to/uploads
) не работает для меня. Это делает:du -sb --exclude relative/path/to/uploads
du
. Мой (OSX) даже не имеет--exclude
, вместо этого он должен-I mask
«игнорировать файлы и каталоги, соответствующие указанной маске». В вашем рабочем примере вы также опускаете=
, заставляя меня далее думать, что это просто ваша версияdu
быть немногоdu
другой.Чтобы исключить несколько каталогов, просто передайте флаг --exclude снова.
источник
du -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
здорово пропустить виртуальные файловые системы, как это так
источник
Если вам нужно быть в macOS, вы устанавливаете GNU Coreutils с помощью следующей команды.
Большинство команд, установленных Coreutils, начинаются с префикса
g
, поскольку в MacOS предварительно установлен тезка BSD. Тогда вы можете сделать следующее.источник