@Theophrastus tem a idéia certa. De acordo com POSIX " [os caracteres que compõem o nome [file] podem ser selecionados a partir do conjunto de todos os valores de caracteres excluindo o caractere de barra e o byte nulo "(minha ênfase). Em outras palavras, cada string entre duas barras ( exceto a string vazia ) é outro diretório, e você não pode criar um arquivo com um nome que contenha barras. Então, quando você tenta touch /root/tinstalls/2--06/06/15
, o sistema está tentando criar o arquivo 15
dentro do diretório com o caminho absoluto /root/tinstalls/2--06/06
.
Uma maneira simples de corrigir isso seria substituir todas as barras no nome do arquivo, por exemplo, com sublinhado:
touch "/root/tinstalls/${tfile//\//_}"