Система контроля версий

Хорошо, обо всем по порядку. Ошибка, которую вы получаете, не имеет значения, она просто означает, что определенный подкаталог (/home/ivana/.cache/dconf) вашего $HOME вам не принадлежит. Это почти наверняка произошло из-за того, что вы запустили графическое приложение с sudo. Вот простое исправление:

sudo chown -R ivana /home/ivana/

Это изменит владельца всех файлов и каталогов в вашем $HOME на ваше собственное имя пользователя. Если у вас могут быть вещи, которые правильно принадлежат другому пользователю, тогда просто измените владельца каталога dconf:

sudo chown -R ivana /home/ivana/.cache/dconf

Теперь, как сказано, способ сделать это правильно и работать с произвольными именами файлов

find "$1" -cmin -10 -type f -print0 | head -z -n 10 

Это заставит find печатать каждый найденный файл с конечным \0 вместо новой строки, что гарантирует, что он будет работать с файлами, имена которых содержат символы новой строки. Параметр -z команды head позволяет читать ввод с разделителями \0.

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

find "$1" -cmin -10 -type f -print0 | head -z -n 10 |
    while IFS= read -r -d '' file; do wc -l "$file"; done

IFS= устанавливает разделитель полей ввода пустым, -r заставляет read не обрабатывать \ специально (поэтому \t не становится вкладкой), а -d '' сообщает read для чтения данных с разделителями \0.

0
14.11.2017, 12:17
0 ответов

Теги

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