Чтобы уточнить предыдущий ответ, приведем несколько примеров.
Это может быть при попытке создать папки внутри системных папок:
ubuntu:~$ mkdir /proc/test
mkdir: cannot create directory ‘/proc/test’: No such file or directory
ubuntu:~$ mkdir -p /dev/null/test
mkdir: cannot create directory ‘/dev/null’: Not a directory
Или если у вас нет прав доступа к предыдущей папке:
ubuntu:~$ mkdir -p /root/test
mkdir: cannot create directory ‘/root’: Permission denied
Также произойдет сбой, если в папке есть файл с таким же именем:
ubuntu:~$ touch /tmp/test
ubuntu:~$ mkdir -p /tmp/test
mkdir: cannot create directory ‘/tmp/test’: File exists
Coreutils sort
должны выполнить эту работу
$ var="vas-1 vas-2 vas-3.... vas-10 vas-11"
$ echo "${var// /\\n}"
vas-1
vas-10
vas-11
vas-2
vas-3
..
# Sorted
$ echo "${var// /\\n}" | sort -n -t '-' -k 2
vas-1
vas-2
vas-3
..
vas-10
vas-11
${var// /\\n}
это bash
конкретная вещь. Он заменяет пробелы новыми строками, поэтому он будет печатать вывод, разделенный новой строкой -.
С оболочкой zsh
:
# use an array instead of a scalar variable to store several values:
$ array=(vas-10 vas-2 vas-3.... vas-1 vas-11)
$ print -rC1 -- ${(no)array}
....
vas-1
vas-2
vas-3
vas-10
vas-11
Гдеo
флаг расширения параметраo
упорядочивает элементы массива при расширении, а n
делает этот порядок n
числовым (и print -rC1
печатает их r
aw on1
C
колонна ).
Если данные изначально должны быть в скалярной переменной и вы хотите разделить их по пространству, вы можете:
array=(${(s: :)var}) # split explicitly on SPC only
или
array=($=var) # split on $IFS (SPC, TAB, NL, NUL by default)