为什么下面的行只打印一次当前目录中的文件(而不是三次)?为什么下列行不能打印3次当前目录中的文件?
这是考试中的一个问题。如果你知道一些源头上读到它,这将是伟大
cp /bin/ls blah
cat blah blah blah >bbb
chmod u+x bbb
bbb
为什么下面的行只打印一次当前目录中的文件(而不是三次)?为什么下列行不能打印3次当前目录中的文件?
这是考试中的一个问题。如果你知道一些源头上读到它,这将是伟大
cp /bin/ls blah
cat blah blah blah >bbb
chmod u+x bbb
bbb
你会需要这样的东西:
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
是一个二进制文件,因此无法连接二进制文件,并期望生成的文件按照原始二进制文件的三个顺序执行。但是,如果不是使用脚本的二进制文件,该示例将起作用。
但是这*仍然*不会显示所有文件名3次。 – 2012-07-22 16:58:57
@ IgnacioVazquez-Abrams我知道,我正在修改答案以反映这一点。实际上,这取决于正在复制的文件的内容。 – betabandido 2012-07-22 16:59:50
我编辑了我的问题。 – user1479376 2012-07-22 18:14:25
ELF可执行文件,具有一定的规模和结构,所以没有办法执行包含在bbb
二进制ls
其他两个副本。
你能详细些吗(我不确定我的英文.sorry)? – user1479376 2012-07-22 18:19:55
你的'cp'命令不完整。 – kev 2012-07-22 16:54:40
抱歉.....修好了。 – user1479376 2012-07-22 18:13:38
你可以查看这个问题http://stackoverflow.com/questions/6209832/easiest-way-to-merge-2-or-more-elf-files – Aftnix 2012-07-22 18:38:22