J'utilise | Sudo tee FILENAME
Pour pouvoir écrire ou ajouter un fichier pour lequel des autorisations de superutilisateur sont assez souvent nécessaires.
Bien que je comprends pourquoi il est utile dans une certaine situation, que tee
envoie également son entrée à STDOUT, je n'ai jamais réellement utilisé cette partie de tee
pour quelque chose d'utile. Dans la plupart des situations, cette fonctionnalité ne fait que remplir mon écran avec une gigue indésirable, si je ne fais pas l'étape supplémentaire et le silence manuellement avec tee 1> /dev/null
.
Ma question: Est-ce qu'il y a une ordonnance de commande, qui fait exactement la même chose que tee
, mais fait par défaut ne génère rien à STDOUT?
Vous pouvez utiliser un script. C'est à dire. Mettez quelque chose comme ça à I.e. $HOME/bin/stee
, 0tee
ou similaire:
#!/bin/bash argv= while [[ "$1" =~ ^- ]]; do argv+=" $1" shift done Sudo tee $argv "$1" > /dev/null
#!/bin/bash
Sudo tee "$@" > /dev/null
Rendez-le exécutable:
$ chmod 755 Stee
Maintenant, c'est.
$ ls -la | Stee -a/root/foo
essayez de créer un fichier par rapport à la racine
$ ls -la /opt/ | head -2
total 0
drwxr-xr-x 3 root wheel 96 Jun 13 2019 .
$ touch /opt/bufu
touch: /opt/bufu: Permission denied
créez un fichier à l'aide de la redirection de Pesky, de l'événement de journal et de l'écriture de contenu de fichier sur STDOUT, en quelque peu parallèle, certainement simultané.
$ cat /tmp/test.sh
#!/bin/sh
file=/opt/bufu
message="an embarrassing failure"
rm -rf $file
{ echo $file \
| tee /dev/fd/2 \
| xargs Sudo sh -c 'echo $1 >$2' _ "$message"
} 2>&1 \
|
{ tee /dev/fd/3 \
| xargs logger -s "Create File"
} 3>&1 \
|
{ xargs cat \
| xargs -I% echo file content is "%"
}
$ /tmp/test.sh
rm: /opt/bufu: Permission denied
Feb 7 17:03:16 bufu[4039] <Notice>: Create File /opt/bufu
file content is an embarrassing failure
mec, ce n'est pas la faute de la tee-shirt que son être forcé dans une position inconfortable - utilisez Xargs sh, ou écrire votre propre doublure
cat <<eof >./aef
echo "$1" >$2
eof
..
Sudo aef "is a cool guy" /opt/fubar