Как передать несколько динамических! -path аргументы для поиска

Я сделал df -a и увидел, что root-права используются на 100%. я попробовал: du -ak / | sort -nr | less , чтобы каталоги занимали больше всего места. при попытке запуска произошел сбой, сообщив, что "/ var / tmp заполнен"

поэтому я зашел в / var / tmp и удалил все. как только я это сделал, я снова смог печатать.

для смеха я побежал du -ak / | sort -nr | less еще раз, чтобы попытаться найти некоторые из более крупных папок. Но многие вещи, которые в результате этого возникли, являются обязательными и не могут быть безопасно удалены.

Ранее я пытался очистить спул, но в нем ничего не было. после очистки / var / tmp df -a показывает, что использование диска составляет около 80% от 1,5 ГБ.

Спасибо за внимание, ребята!

1
03.04.2019, 10:58
2 ответа

С findреализациями, которые поддерживают -regexс расширенными регулярными выражениями(-E -regexв BSD, -regextype posix-extended -regexв GNU ), вы можете сделать:

find. -regextype posix-extended -regex "\./($(
  sed 's@[][\\|^$.*+?{}()]@\\&@g' < list | paste -sd '|' -))" -prune -o \( \
    -type f -print \)

Это исключает эти файлы/каталоги, и любой файл/подкаталог в пределах(findдаже не спускается в них благодаря-prune).

Если вы хотите сопоставить любой файл/каталог с таким именем на любом уровне дерева каталогов, а не только в ., измените \.на .*.

1
27.01.2020, 23:41

Я бы определил для этого функцию-оболочку:

find_exclude(){
    while read -r ext; do set "$@" \! -name "$ext"; done
    find. -type f "$@"
}

$ find -type f
./config
./.vim
./dir/.git
./list
$ cat list
.vim
.git
config
$ find_exclude <list
./list
0
27.01.2020, 23:41

Теги

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