Нет, LXC, Docker и LXD не совсем одно и то же. Вкратце:
Контейнеры LinuX (LXC) - это метод виртуализации на уровне операционной системы для запуска нескольких изолированных систем (контейнеров) Linux на одном управляющем хосте (хосте LXC)
https: // wiki. archlinux.org/index.php / Linux_Containers
низкий уровень ...
Сборка, доставка и запуск любого приложения, где угодно
http://www.docker.com запускать LXD на Ubuntu и мгновенно запускать экземпляры RHEL, CentOS, SUSE, Debian, Ubuntu и почти любого другого Linux, ...
http: // www.zdnet.com/article/ubuntu-lxd-not-a-docker-replacement-a-docker-enhancement/Источник: http://linux.softpedia.com/blog/infographic-lxd-machine-containers-from-ubuntu-linux-492602.shtml
Первоначально: https: / /insights.ubuntu.com/2015/09/23/infographic-lxd-machine-containers-from-ubuntu/
lxc
http://blog.scottlowe.org/2015/05/06/quick-intro-lxd/ Легко забыть, что подстановка оболочки по-прежнему играет роль в этом процессе. Таким образом, вам нужен способ сообщить оболочке, чтобы она не раскрывала *
до списка файлов. Один из способов - это то, что упомянул Крис Джонсон - цитирование.
Другой - экранирование символа *
, как в
find . -iname \*.js
Сравните:
$ strace -e trace=execve find -maxdept 1 -iname *.js > /dev/null
execve("/usr/bin/find", ["find", "-maxdept", "1", "-iname", "file1.js", "file2.js"], [/* 75 vars */]) = 0
find: unknown predicate `-maxdept'
+++ exited with 1 +++
$ strace -e trace=execve find -maxdept 1 -iname \*.js > /dev/null
execve("/usr/bin/find", ["find", "-maxdept", "1", "-iname", "*.js"], [/* 75 vars */]) = 0
find: unknown predicate `-maxdept'
+++ exited with 1 +++
В первом случае мы видим, что *
был расширен до списка файлов file1 .js
и file2.js
, которые присутствуют в текущем рабочем каталоге. Во втором примере - *
рассматривается как буквальный аргумент для find
. Фактически, это тот же результат, полученный при цитировании аргумента:
$ strace -e trace=execve find -maxdept 1 -iname '*.js' > /dev/null
execve("/usr/bin/find", ["find", "-maxdept", "1", "-iname", "*.js"], [/* 75 vars */]) = 0
find: unknown predicate `-maxdept'
+++ exited with 1 +++
В качестве альтернативы вы можете вместо этого использовать восьмеричное значение *
.
$ strace -e trace=execve find -maxdept 1 -iname $'\52'.js > /dev/null
execve("/usr/bin/find", ["find", "-maxdept", "1", "-iname", "*.js"], [/* 75 vars */]) = 0
find: unknown predicate `-maxdept'
+++ exited with 1 +++
Заключите *. Js
в одинарные кавычки. Без кавычек оболочка расширяет подстановочный знак до имен файлов, которые соответствуют в текущем каталоге, поэтому find
получает только эти имена файлов либо в текущем каталоге, либо в подкаталогах в спецификации find (но никогда не видит подстановочный знак ). Чтобы указать его в качестве шаблона для использования find
, вам необходимо предотвратить расширение оболочки. '*. Js'
делает это.