</dev/null
odłącza wejście programu od terminala. Niektóre programy reagują inaczej w zależności od tego, do czego podłączone jest ich standardowe wejście. Dzięki przekierowaniu </dev/null
program może stwierdzić, że jego dane wejściowe nie pochodzą z terminala, i natychmiast otrzyma wskazanie końca pliku, jeśli spróbuje odczytać dane ze standardowego wejścia.
Sam &
na końcu powoduje, że program jest wykonywany w tle. Oznacza to, że natychmiast otrzymasz monit powłoki. Bez tego &
komunikat powłoki byłby zwracany tylko wtedy, gdy program zakończy wykonywanie.
Zauważ, że samodzielny &
nie jest związany z >&
. >&
jest operatorem przekierowania (w tcsh, bash i zsh), który przekierowuje zarówno standardowe wyjście programu, jak i standardowy błąd programu na nazwę pliku określoną po operatorze (tutaj log
).
Innymi słowy, to, co robi powłoka, gdy widzi ten wiersz poleceń, to:
- Rozpocznij proces w tle. W tle:
- Podłącz standardowe wejście do
/dev/null
( urządzenie zerowe ).
- Podłącz standardowe wyjście i standardowy błąd do pliku o nazwie
log
(tworzenie pliku, jeśli jeszcze nie istnieje, i obcinanie, jeśli istnieje).
- Poszukaj pliku wykonywalnego o nazwie
java
w $PATH
.
- Wykonać ten plik z 5 argumentów
-cp
, /home/weka.jar
, weka.classifiers.trees.J48
, –t
, train_file`.
Gilles „SO- przestań być zły”
źródło