Aşağıdaki komut satırını kullanarak örnek bir java programı çalıştırmayı denedim. Ancak, arka kısmın ne için < /dev/null &
kullanıldığını bilmiyorum ?
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
Aşağıdaki komut satırını kullanarak örnek bir java programı çalıştırmayı denedim. Ancak, arka kısmın ne için < /dev/null &
kullanıldığını bilmiyorum ?
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
Yanıtlar:
< /dev/null
programa anında EOF göndermek için kullanılır, böylece girdi beklemez ( /dev/null
boş aygıt, kendisine yazılan tüm verileri atar, ancak yazma işleminin başarılı olduğunu ve hiçbir veri sağlamadığını bildiren özel bir dosyadır) ondan okunan herhangi bir işlem, derhal EOF sağlar). &
önceki işlemin arka planında kullanılan özel bir komut ayırıcı türüdür.
Aranan programı bilmeden, bu şekilde çalıştırmanın neden gerekli olduğunu doğrudan bilmiyorum.
</dev/null
programın girişini terminalden ayırır. Bazı programlar, standart girdilerinin neye bağlı olduğuna bağlı olarak farklı tepki verir. Yeniden yönlendirme ile </dev/null
program, girişinin bir terminalden gelmediğini söyleyebilir ve standart girişinden okumaya çalışırsa hemen bir dosya sonu göstergesi alır.
Sondaki yalnız &
programın arka planda yürütülmesine neden olur. Bu, derhal bir kabuk istemi alacağınız anlamına gelir. Olmadan, &
bir kabuk komut istemi yalnızca program yürütmeyi bitirdiğinde geri alırsınız.
Tek başına &
ilgisiz olduğuna dikkat edin >&
. >&
hem programın standart çıktısını hem de programın standart hatasını operatörden sonra (burada log
) belirtilen dosya adına yönlendiren bir yönlendirme operatörüdür (tcsh, bash ve zsh olarak ).
Başka bir deyişle, bu komut satırını gördüğünde kabuğun yaptığı şey:
/dev/null
( boş aygıta ) bağlayın .log
(henüz mevcut değilse dosya oluşturma ve varsa kesme).java
içinde $PATH
.-cp
, /home/weka.jar
, weka.classifiers.trees.J48
, –t
, train_file`.