Кража ответа из различных комментариев и ссылок на [SO]. Кажется, есть POSIX-совместимый метод , который не включает, mkdir
как я уже упоминал в моем первоначальном ответе ниже
set -o noclobber # or set -C
{ > file ; } &> /dev/null
Это перенаправление в файл возвращает 0 или завершается ошибкой и возвращает ненулевое значение, если файл уже существует.
Оригинальный ответ
Вам придется использовать mkdir
- это атомарно, либо каталог создается, и вы можете продолжить, либо он не создается, поэтому вы предпринимаете соответствующие действия.
Конечно, mkdir
не создает файл, но как только вы узнаете, что имеете эксклюзивный доступ к каталогу, вы можете создать в нем нужный вам файл.
Что касается одного лайнера - я оставлю это на ваше усмотрение. Лично я бы написал это в несколько строк, так как это будет более понятным.