Nano akzeptiert vorherige Pipe-Ausgabe als Dateipfad

2454
bobo

Wenn ich den folgenden Befehl in Linux ausführen:

find / -iname httpd.conf 

Ich bekomme:

/usr/local/apache/conf/httpd.conf 

Ich möchte nano verwenden, um diese Datei zu bearbeiten, lazy, um den Dateipfad erneut einzugeben. Ich habe verwendet:

find / -iname httpd.conf | nano 

Es hat nicht funktioniert, Nano wurde schnell geöffnet und beendet, dann fand ich eine Nano.save-Datei in dem Verzeichnis, in dem ich diesen Befehl ausgeführt habe. Mit dem Befehl cat auf nano.save wird der Text ausgegeben: /usr/local/apache/conf/httpd.conf

Das bedeutet, Nano denkt die vorherige gepipste Ausgabe als eine Zeichenfolge, die ich in eine Datei schreiben möchte. In der Tat möchte ich, dass Nano es als Dateipfad betrachtet, so dass die Datei tatsächlich für mich zum Bearbeiten geöffnet wird.

Wie können wir Nano dazu bringen, die vorherige Pipe-Ausgabe als Dateipfad zu akzeptieren?

1

1 Antwort auf die Frage

4
Benjamin Bannier

Nano verhält sich wie erwartet, da eine Pipe verwendet wird, um die Programmausgabe mit der Eingabe eines anderen zu verbinden.

Stattdessen möchten Sie die Ausgabe von findals Argument für Folgendes verwendennano :

nano `find / -iname httpd.conf` 
Aber warum betrachtet nano die Eingabe nicht als Dateipfad, sondern als Inhalt der Datei? bobo vor 14 Jahren 0
Weil Pipes die Ausgänge mit den Eingängen http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html verbinden. Sie möchten einen `nano`-Parameter durch eine Programmausgabe ersetzen: http://tldp.org/LDP/abs/html/commandsub.html. Benjamin Bannier vor 14 Jahren 0