2012-07-22 40 views
-2

为什么下面的行只打印一次当前目录中的文件(而不是三次)?为什么下列行不能打印3次当前目录中的文件?

这是考试中的一个问题。如果你知道一些源头上读到它,这将是伟大

cp /bin/ls blah 
cat blah blah blah >bbb 
chmod u+x bbb 
bbb 
+1

你的'cp'命令不完整。 – kev 2012-07-22 16:54:40

+0

抱歉.....修好了。 – user1479376 2012-07-22 18:13:38

+0

你可以查看这个问题http://stackoverflow.com/questions/6209832/easiest-way-to-merge-2-or-more-elf-files – Aftnix 2012-07-22 18:38:22

回答

2

你会需要这样的东西:

cp /bin/ls/blah . 
cat blah blah blah >bbb 
chmod u+x bbb 
./bbb 

第一个区别是参数来cp数量。您需要指定目的地以及来源。第二个区别是,除非路径中包含当前目录,否则您需要使用./command而不是command来执行驻留在当前目录中的程序。

除此之外,重要的是要知道/bin/ls/blah的内容是什么。如果该文件是一个包含类似bash脚本:

#!/bin/ls 
ls 

这个答案,因为预期(打印当前目录下的3倍内容)将工作的开始给出的代码修改块。如果文件是二进制文件,则很可能不起作用,因为您无法连接二进制文件,并期望生成的文件像原始二进制文件的3次连续执行一样。

更新:编辑之后,答案明显改变。现在,只有最后一部分适用于它。由于/bin/ls是一个二进制文件,因此无法连接二进制文件,并期望生成的文件按照原始二进制文件的三个顺序执行。但是,如果不是使用脚本的二进制文件,该示例将起作用。

+0

但是这*仍然*不会显示所有文件名3次。 – 2012-07-22 16:58:57

+0

@ IgnacioVazquez-Abrams我知道,我正在修改答案以反映这一点。实际上,这取决于正在复制的文件的内容。 – betabandido 2012-07-22 16:59:50

+0

我编辑了我的问题。 – user1479376 2012-07-22 18:14:25

0

ELF可执行文件,具有一定的规模和结构,所以没有办法执行包含在bbb二进制ls其他两个副本。

+0

你能详细些吗(我不确定我的英文.sorry)? – user1479376 2012-07-22 18:19:55

相关问题