Si vous pensez que vous en aurez besoin plus souvent et que vous ne voulez pas taper le chemin deux fois à chaque fois, vous pouvez également créer une fonction Bash ou un script pour cela.
Fonction Bash (ajoutez cette ligne pour la ~/.bashrcmettre à la disposition de votre utilisateur de manière persistante, sinon elle disparaîtra de nouveau lorsque vous quitterez votre terminal):
Script Bash (stockez-le en /usr/local/bin/touch2utilisant sudo pour le rendre disponible pour tous les utilisateurs, sinon ~/bin/touch2pour votre utilisateur uniquement):
puis-je modifier la touch commande d' origine et y ajouter un commutateur -p?
MA Heshmat Khah
3
@HeshmatKhah Cela devrait être possible, mais il n'est pas recommandé d'observer les exécutables système avec vos propres scripts ou fonctions. Vous pouvez utiliser le nom touch-p(pas d'espace!) Au lieu de touch2, si vous préférez le "p", mais je n'essaierais pas de remplacer la commande d'origine.
Byte Commander
1
Notez que vous pouvez également utiliser la suppression des suffixes au lieu de cela dirname, c'est-à-dire que vous pouvez le faire mkdir -p "${1%/}" && touch "$1", de la même manière que askubuntu.com/a/928544/295286
Sergiy Kolodyazhnyy
7
On peut utiliser la installcommande avec -Dindicateur.
bash-4.3$ install -D /dev/null mydir/one/two
bash-4.3$ tree mydir
mydir
└── one
└── two
1 directory, 1 file
bash-4.3$
Si nous avons plusieurs fichiers, nous pourrions envisager d'utiliser une liste d'éléments (notez, n'oubliez pas de citer des éléments avec des espaces) et de les répéter:
bash-4.3$ for i in mydir/{'subdir one'/{file1,file2},'subdir 2'/{file3,file4}} ; do
> install -D /dev/null "$i"
> done
bash-4.3$ tree mydir
mydir
├── one
│ └── two
├── subdir 2
│ ├── file3
│ └── file4
└── subdir one
├── file1
└── file2
Ou bien avec tableau:
bash-4.3$ arr=( mydir/{'subdir one'/{file1,file2},'subdir 2'/{file3,file4}} )
bash-4.3$ for i in "${arr[@]}"; do install -D /dev/null "$i"; done
bash-4.3$ tree mydir
mydir
├── one
│ └── two
├── subdir 2
│ ├── file3
│ └── file4
└── subdir one
├── file1
└── file2
Avec cette approche, le nouveau fichier obtient des autorisations exécutables par défaut. Pour lui donner les mêmes autorisations qu'il obtiendrait au toucher, on peut utiliserinstall -m 644 -D /dev/null <filepath>
ricab
1
Pour cela, vous pouvez créer votre propre fonction, exemple ci-dessous:
Nous insérons d'abord une fonction à la fin du fichier ~ / .bashrc à l'aide de la commande echo. La fonction -p dans la fonction permet de créer les dossiers imbriqués, comme fldr2 à partir de notre exemple. Enfin, nous mettons à jour le fichier avec la commande source et finalement exécutons la commande mkfile récemment créée
touch
commande d' origine et y ajouter un commutateur-p
?touch-p
(pas d'espace!) Au lieu detouch2
, si vous préférez le "p", mais je n'essaierais pas de remplacer la commande d'origine.dirname
, c'est-à-dire que vous pouvez le fairemkdir -p "${1%/}" && touch "$1"
, de la même manière que askubuntu.com/a/928544/295286On peut utiliser la
install
commande avec-D
indicateur.Si nous avons plusieurs fichiers, nous pourrions envisager d'utiliser une liste d'éléments (notez, n'oubliez pas de citer des éléments avec des espaces) et de les répéter:
Ou bien avec tableau:
la source
install -m 644 -D /dev/null <filepath>
Pour cela, vous pouvez créer votre propre fonction, exemple ci-dessous:
Nous insérons d'abord une fonction à la fin du fichier ~ / .bashrc à l'aide de la commande echo. La fonction -p dans la fonction permet de créer les dossiers imbriqués, comme fldr2 à partir de notre exemple. Enfin, nous mettons à jour le fichier avec la commande source et finalement exécutons la commande mkfile récemment créée
la source