2012-07-22 72 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

相關問題