O comando touch não precisa que o arquivo de destino exista, mas precisa que o diretório pai do arquivo de destino exista. Portanto, se você quiser executar touch /bar/foo.txt , precisará verificar se o diretório /bar/ já existe.
O comando touch (como a maioria dos programas de linha de comando) também assume que o argumento de caminho que você fornece é um caminho relativo. Portanto, touch foo.txt criará um arquivo no seu diretório de trabalho atual. Se o seu diretório atual for o seu diretório pessoal, então foo.txt será criado em seu diretório pessoal.