Когда Вы используете расширение фигурной скобки?

Наличие более доступной памяти

Как все сказал, да, подкачка поможет Вам избавиться от неиспользованной памяти, таким образом, она сможет помочь Вам имеющий больше памяти в наличии.

Спящий режим

Но подкачка может также использоваться для спящего режима, который может быть действительно полезным, когда Вы имеете ноутбук или хотите сохранить энергию и поместить Ваш компьютер и работу в спящем режиме перед оставлением работы. Таким образом, у Вас может быть более быстрый запуск утро после.

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

Недостатки

Всего хорошего, который когда-то подкачал данные процесса, мог быть считан в подкачке даже после завершения работы, если подкачка не была зашифрована (конечно).

Используя зашифрованную подкачку со спящим режимом не работает out-of-the-box со всеми дистрибутивами. Необходимо использовать постоянный ключ шифрования (некоторые установки случайным образом генерируют ключ шифрования области подкачки при каждой начальной загрузке), и initrd/initramfs для активации зашифрованного тома перед возобновлением.

50
15.09.2014, 09:13
7 ответов

Расширение фигурной скобки очень полезно, если у Вас есть имена длинного тракта. Я использую его в качестве быстрого способа скопировать файл:

cp /a/really/long/path/to/some/file.txt{,.bak}

скопирует /a/really/long/path/to/some/file.txt кому: /a/really/long/path/to/some/file.txt.bak

Можно также использовать его в последовательности. Я однажды сделал так для загрузки большого количества страниц от сети:

wget http://domain.com/book/page{1..5}.html

или

for i in {1..100}
do
   #do something 100 times
done
53
27.01.2020, 19:33
  • 1
    Это может использоваться для дублирования аргумента также. Скажите, что у Вас есть некоторая программа, которая требует, чтобы '-f' аргумент в пользу каждого файла воздействовал на. вместо выполнения program -f file1 -f file2 -f file3, можно сделать program "-f file"{1..3} –  Patrick 01.02.2011, 22:42
  • 2
    Это - позор. Я просто обнаружил его, но сделайте резервную вещь на дополнительных длинных трактах в течение многих лет, не зная rhis.Спасибо. –  smonff 20.05.2014, 15:41
  • 3
    @Patrick: Это перестало работать потому что program получает три слова: "-f file1" "-f file2" "-f file3", вместо 6: "-f" "file1" "-f" "file2" "-f" "file3". –  musiphil 18.05.2015, 21:52
  • 4
    @dogbane: Используя расширение для использования в a for цикл немного бессмыслен, так как можно записать for ((i=1; i<=100; i++)) и это более эффективно. –  musiphil 18.05.2015, 21:54

Расширение фигурной скобки происходит очень удобное при создании больших структур каталогов:

mkdir -p dir1/{subdir1,subdir2}/{subsubdir1,subsubdir2}

Это даст Вам

find dir1 -type d
dir1
dir1/subdir1
dir1/subdir1/subsubdir1
dir1/subdir1/subsubdir2
dir1/subdir2
dir1/subdir2/subsubdir1
dir1/subdir2/subsubdir2

Вы могли даже пойти один шаг вперед и поместить расширение фигурной скобки в расширение фигурной скобки:

mkdir -p dir1/{subdir{1,2}}/{subsubdir{1,2}}

Это даст Вам ту же структуру каталогов как пример выше.

33
27.01.2020, 19:33
  • 1
    Вложение хорошо, но Ваш вложенный пример (mkdir -p dir1/{subdir{1,2}}/{subsubdir{1,2}}) на самом деле не служит никакой цели. Вы, возможно, просто сделали это: mkdir -p dir1/subdir{1,2}/subsubdir{1,2}. –  iconoclast 14.07.2011, 21:40
  • 2
    @iconoclast, это действительно служит цели, если Вы интерпретируете subdir1 и subdir2 в небуквальном смысле. Замена subdir1 с cat и subdir2 с dog например. –  ephsmith 26.07.2012, 13:55
  • 3
    @ephsmith: если Вы интерпретируете "subdir1" как помогающий для "кошки" и "subdir2" для "собаки", то вложенный пример перестал работать, так как это использует subdir {1,2}, и нет никакой строки, что можно заменить "subdir" этим, сделает возврат subdir {1,2} {кошкой, собакой}. –  iconoclast 27.07.2012, 00:04

Я использую его, когда я хочу уменьшить ввод:

geany /path/to/file1 /path/to/file2
# versus
geany /path/to/file{1,2}

Другой пример:

wajig install libpam0g-dev libiw-dev libdb-dev
# versus
wajig install lib{pam0g,iw,db}-dev
21
27.01.2020, 19:33

Я использую его для сравнения фактического тестового вывода с желаемым тестовым выводом во время разработки. Если тест № 41 перестал работать, легко видеть что различие между тестовым выводом (в файле tests.output/041) и желаемым выводом (в файле tests.out/041):

$ diff tests.{out,output}/041
12
27.01.2020, 19:33

Некоторые частые случаи для меня:

Для переименования:

mv myText.{txt,tex}

или

mv myText.tex{,.old}

или

cp myText.tex{,.backup}

(Хотя это менее грязно для использования управления версиями для последних 2 задач.)

Для сравнения (уже упомянутый):

diff path{1,2}/a.txt
10
27.01.2020, 19:33

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

я делаю не использование это в моих сценариях оболочки (если нет некоторая другая причина, сценарии должны быть ударом или zsh, хотя в тех случаях, лучше модернизировать до "реального" языка сценариев как жемчуг или python). расширение Фигурной скобки не портативно , так как это не находится в стандарте оболочки POSIX. Даже если это будет работать в вашем /bin/sh - хижина сценарии оболочки редактора, то это не будет работать над системами с более разделенным оболочки/bin/sh (например, тире ).

В случае различия единственной цифры, вы не должны заключать в фигурные скобки расширение; класс символов будет достаточен:

Bashism:

diff file{1,2}

Портативный:

diff file[12]
3
27.01.2020, 19:33

После разделения очень большого файла с помощью

split -b 100m hugeFile.zip part.

предположим, что он раскололся на 262 части, другими словами part.aa, part.ab, part.ac...part.kb

Вы можете снова соединить эти части, вставив расширения фигурных скобок , например

cat part.{{a..j}{a..z},k{a..b}} > hugeFile.zip
2
01.03.2020, 22:36

Теги

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