Когда существует `mkdir -p / path / to / dir` с ненулевым статусом?

Если вы наберете:

strace -o outfile top

, он запустит top как обычно, при этом отслеживая все системные вызовы, которые он делает, и помещает результат в Outfile . Открываемые им файлы отображаются как вызовы системного вызова open (2) . После запуска вам следует быстро выйти из top , так как он будет продолжать добавлять много данных, и всего несколько секунд будет достаточно, чтобы сказать вам, что он читает.

Выполняя это быстро в моей собственной системе, похоже, что большая часть данных взята из / proc / / stat , / proc / / status и / proc / / statm . Некоторый поиск и эксперименты должны позволить вам определить их форматы.

0
08.05.2018, 05:46
2 ответа

Изhttps://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html#mkdir-invocation:

An exit status of zero indicates success, and a nonzero value indicates failure. 

Ошибка возникает, когда необходимо создать каталоги, но операция не выполняется.

2
28.01.2020, 02:14

Чтобы уточнить предыдущий ответ, приведем несколько примеров.
Это может быть при попытке создать папки внутри системных папок:

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
6
28.01.2020, 02:14

Теги

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