Run a job in the background
$ command &
When it's done, the terminal prints
So sometimes it's a plus and other times it's a minus following
What does plus/minus mean?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
They are to distinguish between current and previous job; the last job and the second last job for more than two jobs, with
+ for the last and
- for the second last one.
The previous job may be referenced using
%-. If there is only a single job,
%-can both be used to refer to that job. In output pertaining to jobs (e.g., the output of the jobs command), the current job is always flagged with a
+, and the previous job with a
$ sleep 5 &  21795 $ sleep 5 &  21796 $ sleep 5 &  21797 $ sleep 5 &  21798 $ jobs  Running sleep 5 &  Running sleep 5 & - Running sleep 5 & + Running sleep 5 & $  Done sleep 5  Done sleep 5 - Done sleep 5 + Done sleep 5
I'm guessing you are referring to when you check jobs via
$jobs. However, as you probably know already,
n denotes the job #. The
[n] + denotes the final job that was called.
[n] - denotes the second to last job that is called.
chris@chris-VirtualBox:~$ sleep 30 &  904 chris@chris-VirtualBox:~$ sleep 50 &  972 chris@chris-VirtualBox:~$ jobs - Running sleep 30 & + Running sleep 50 &
That is why, in this case, our
sleep 50 & is last:
sleep 30 & is second to last: