我有一个练习,将一些数据(来自某些目录的*conf)放入文件中,并且需要在后台执行此操作。我做到了,我想知道输出消息的含义是什么:
[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &
输入此行:
[1] 2533
这是什么意思?其他 Enter 后,会出现另一条消息
[A@localhost tests]$
[1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1
这是什么意思?什么是“2号出口”?
输入检查结果——似乎一切OK。
[A@localhost tests]$
[A@localhost tests]$ ls -l test1_6_conf.txt
-rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt
[A@localhost tests]$
我正在使用 CentOS 6.4、Gnome 终端模拟器。
答案1
这是什么意思?什么是“2号出口”?
这是 的退出状态ls
。参见 man ls:
Exit status:
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
我猜原因是 /usr 中有很多 *conf 文件,/etc
而 /usr 中没有 *conf 文件。事实上ls -ld /usr/*conf;
也会有同样的效果。
因此,如果我在计算机上ls
对现有文件执行以下操作:
ls main.cpp; echo $?
main.cpp
0
对于不存在的文件:
ls main.cppp; echo $?
ls: cannot access main.cppp: No such file or directory
2
或者作为后台进程 ls 查找不存在的文件:
>ls main.cppp &
[1] 26880
ls: cannot access main.cppp: No such file or directory
[1]+ Exit 2 ls main.cppp