爲什麼下面的行只打印一次當前目錄中的文件(而不是三次)?爲什麼下列行不能打印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