Как установить дисковую квоту для процесса?

Подстановочный знак не имеет никакого отношения к grep, все, что видит grep - это то, что передается ему по трубопроводу. Подстановочный знак расширяется оболочкой, а список файлов, до которых он расширяется, передается в less. Так что проблема не имеет никакого отношения к grep.

Тем не менее, если вы ищете неработающие ссылки, вы можете сделать следующее:

for f in /Users/raine/.nvm/versions/node/v5.5.0/lib/node_modules/*; do
     [ -e $(readlink -f "$f") ] || echo "$f"; 
done

Это позволит перебрать все файлы и каталоги в /Users/raine/.nvm/versions/node/v5.5.0/lib/node_modules/, проверить, существует ли их цель (readlink выведет имя файла, для которого был запущен iot, если этот файл не является ссылкой) и вывести имя, если нет.


Гораздо лучшее решение, о котором я только что узнал:

find /Users/raine/.nvm/versions/node/v5.5.0/lib/node_modules/ -xtype l 

-xtype будет проверять, является ли цель ссылки, в данном случае, ссылкой, так что это будет верно только для висячих ссылок.

3
02.07.2016, 09:01
1 ответ

Вы можете использовать ulimit. Это не совсем квота, но похоже.

предел -f 1000

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

В tcsh используется команда limit вместо ulimit и может использовать немного другой синтаксис.

1
11.03.2020, 19:02

Теги

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