Y a-t-il un indicateur/option pour touch
, mkdir
, >
, ou une autre commande qui me permettra de créer un fichier et tout répertoire parent inexistant en même temps?
Par exemple, disons que je suis dans un dossier vide. Maintenant, je peux créer des répertoires parents s'ils n'existent pas lors de la création d'un dossier
mkdir -p nested/folder
Je peux créer des fichiers dans des répertoires existants
touch nested/folder/something.txt
Mais je ne peux pas créer un fichier dans un répertoire qui n'existe pas encore
touch nested/folder/deep/more.txt
touch: impossible de toucher ‘nested/folder/deep/more.txt’: Aucun fichier ou répertoire de ce type
Comment créer ce dossier deep
en même temps que je crée more.txt
?
Vous pouvez combiner les deux commandes sur une seule ligne. Si vous utilisez une variable, vous pouvez le faire:
file="./nested/folder/deep/more.txt"
Et puis ceci:
mkdir -p "${file%/*}" && touch "$file"
Ou tous ensemble sur une seule ligne comme celle-ci:
mkdir -p "./nested/folder/deep" && touch "./nested/folder/deep/more.txt"
Ce n'est pas une seule commande, mais elle pourrait faire le travail pour vous.