Взгляните на:
$ man NetworkManager.conf
Кажется этим, если Вы добавляете строку с dns=none
в [main]
раздел, NetworkManager не затронет /etc/resolv.conf
.
выполняют следующий скрипт с вашим тарболом в качестве параметра командной строки
#!/bin/bash
DIR=$(tar tvf ${1} | egrep -o "[^ ]+/$")
if [ $(echo ${DIR} | egrep -o " " | wc -l) -eq 0 ]; then
echo ${DIR};
else
echo "ERROR: multiple directories in tarball base"
exit 1
fi
Если вы используете найти... -exec КОМАНДА {} +
или найти... -print0 | xargs -0 COMMAND
, xargs
или find
будет создан список аргументов имени файла, не превышающий определенное буферное пространство каждой команды (ограничено ARG _ MAX
). Если пространство буфера исчерпано, каждая команда передает список аргументов имени файла в COMMAND
и начинает создание нового списка. Этот процесс будет повторяться столько раз, сколько потребуется, пока не будет больше имен файлов, при этом пункте список создаваемых имен файлов будет передан в COMMAND
в последний раз.
Поэтому если вы не ожидаете, что команда find
вернет большое количество имен файлов
find . -type f -not -regex '.+?nobackup.*' -exec du -c {} +
может оказаться достаточной. Если вы и ваш поддержки du
- files0-от
вы можете использовать, - files0-от =-
это, чтобы читать законченный пустым указателем файлы
непосредственно от stdin
(, du
полагает -
означать прибывать от stdin
)
find . -type f -not -regex '.+?nobackup.*' -print0 | du -c --files0-from=-
Примечание: - files0-от
не определен posix
, но он должен быть расширен в новом гну du
версии. Если реализация была опущена, скорее всего, придется закольцевать результаты найти
в некоторых путях и сложить итоговые значения в цикле.
Для этого лучше использовать awk
, чтобы поддерживать арифметические операции
cat $1 | awk -v d=$2 '/BookmarkPageNumber:/{$2-=d}1'
-121--93519- Update Извините, что забыли, что вам также нужно имя самого верхнего каталога. Я обновил команду, включив «else». Если найден только один каталог, он будет повторять свое имя. Если вызывается «ERROR», можно просто просмотреть содержимое «test.file», чтобы увидеть, какие каталоги находятся в гудроне.
Попробуйте это:
$ zcat test.tar.gz | tar xvf - | \
awk -F/ '{print $1}' | \
uniq > test.file && \
if (($(wc -l 'test.file' | \
awk '{print $1}')>1));then echo "ERROR";else cat test.file;fi
человек zcat
zcat идентичен gunzip -c. (В некоторых системах zcat может быть установлен как gzcat для сохранения исходной ссылки на сжатие.) zcat распаковывает либо список файлов в командной строке, либо их стандартный ввод и записывает несжатые данные на стандартный вывод. zcat разархивирует файлы с правильным волшебным номером, независимо от того, имеют ли они суффикс .gz или нет.
awk -F/' {print $1} | uniq
Напечатайте первое слово, помеченное символом '/', только уникальное.
> test.file
Запись выходных данных в файл
(($ (wc-l 'test.file' | awk '{print $1}') > 1))
Конструкция double ((..)) допускает арифметическое расширение и оценку. wc -l
получает число строк в файле. awk «» {print $1} «») > 1
получить только первый столбец, который является номером счетчика строк, и проверить, больше ли это число чем 1. , затем эхо «ОШИБКА»
печать «ОШИБКА», если в tar-файле найдено несколько каталогов.
Надеюсь, что это поможет.