請教一個 LPIC1的考題

Debian 有很多實用的工具如: apt 系列 、 update- 系列,但是我們卻常常忽略了!這個版就是要大家一起來分享您在使用 debian 特殊指令的經驗!請大家共襄盛舉囉!注意不要在此提問問題喔!

請教一個 LPIC1的考題

文章dustin » 週二 10月 14, 2008 12:42 am

各位大大安:

不才小弟有個LPIC1考題不解, 題目如下:
What would the following command result in? cp `find . -size -12k` /tmp

A:The file with the name "find . -size -12k" will be copied to /tmp
B:This isn't a valid command
C:All files in the current directory and in all included subdirectories which are smaller than 12 KByte will be copied to /tmp.
D:All files in the current directory which are smaller than 12 KByte will be copied to /tmp
E:All files in the current directory and in all included subdirectories which are smaller than 12 KByte will be copied to /tmp. The directory structure will be copied, too.

我查了cp指令相關用法,並且也實機測試,認為答案應該是B,但在某些網站出來的答案卻是C, 是我的用法有錯嗎?...= ="?
dustin
 

文章neio » 週二 10月 14, 2008 8:50 am

是 C 阿..... cp `find . -size -12k` /tmp 這邊的 "`" 左手邊 tab 鍵上面那個喔~不是單引號。
neio
懵懂的國中生
懵懂的國中生
 
文章: 103
註冊時間: 週六 11月 13, 2004 8:26 pm

文章dustin » 週二 10月 14, 2008 9:39 am

我是用 tab 鍵上的那個 "`"符號 ,在實機上試會有以下訊息:

-bash: /bin/cp: Argument list too long
dustin
 

文章sppmg » 週二 10月 14, 2008 11:10 am

neio 寫:是 C 阿..... cp `find . -size -12k` /tmp 這邊的 "`" 左手邊 tab 鍵上面那個喔~不是單引號。


就是這樣。
``在Shell中的用途是先執行``中的指令,並將結果傳回。
c沒錯
系統的威力來自於程式的相互關係, 而非來自程式本身
is the idea that the power of a system comes more from the relationships among programs than from the programs themselves.

(英文語法怪怪的......誰能提供完整的版本?)
sppmg
活潑的高中生
活潑的高中生
 
文章: 317
註冊時間: 週五 8月 04, 2006 3:47 pm
來自: 臺灣

文章eddyliu » 週二 10月 14, 2008 3:14 pm

哦~ 我也試了一下, 會執行失敗 係因 `find . -size -12k` 這部份先被shell解譯, 但解出來會有 " ./ " 這個字符對 cp 來說並不是一個 valid option ,所以我支持 B
eddyliu
 

文章企鵝狂 » 週二 10月 14, 2008 7:54 pm

argument too long是說,你找到太多小於12k的檔案一口氣傳給cp了。

所以應該是合法的指令。

./ 不是接在 - 之後,所以,他不是option,只是一個一般的argument,當然沒有問題。

在我電腦上面看到的是
/usr/include/linux/limits.h:

#define ARG_MAX 131072
http://news.bbc.co.uk/1/hi/world/asia-pacific/country_profiles/1285915.stm


Country profile: Taiwan
Map of Taiwan
Taiwan is the island which has for all practical purposes been independent for half a century, but which China regards as a rebel region that must be reunited with the mainland - by force if necessary.
企鵝狂
活潑的高中生
活潑的高中生
 
文章: 477
註冊時間: 週三 3月 31, 2004 11:13 am
來自: 台灣共和國

文章訪客 » 週二 10月 14, 2008 8:56 pm

抱歉喔! 我剛說的 valid option 是錯的, 應該是 valid argument,

但 我還是要說雖然 指令 cp `find . -size -12k` /tmp 格式是對的,但這樣是無法取出如答案C的結果, 因為 find 被shell 解出的結果 必定會帶有 " . " 這個字符 對 cp 來說是 不合法的 這是我的拙見,

支持 答案 B ,若有人另有高見,也希望給dustin一個建議吧!
訪客
 

文章dustin » 週二 10月 14, 2008 9:52 pm

謝謝 各位大大的幫忙, 只對考試來說,或許 C 會是正確的吧...呵
dustin
 

文章訪客 » 週二 10月 14, 2008 11:34 pm

C是正確的,我做了以下實驗:
代碼: 選擇全部
$ mkdir ~/temp
$ cd temp
$ touch 1
$ touch 2
$ touch 3
$ touch 4

然後執行
代碼: 選擇全部
$ cp `find . -size -12k` /tmp

會出現『cp: 略過 ‘.’ 目錄』
察看 /tmp
代碼: 選擇全部
$ ls /tmp

執行結果 1 2 3 4 4個檔案全在 /tmp
~~以上
訪客
 

文章訪客 » 週三 10月 15, 2008 12:05 pm

咦?為什有人執行成功,有人失敗?是使用的工具版本不同,還是鍵錯指令?
訪客
 

文章sppmg » 週三 10月 15, 2008 2:21 pm

Anonymous 寫:....... 因為 find 被shell 解出的結果 必定會帶有 " . " 這個字符 對 cp 來說是 不合法的 .......


為什麼「.」是不合法的?
「.filename」表示隱藏檔
「./filename」表示「`pwd`/filename」(此目錄下的filename檔)
我的理解是這樣子,如果你有試出錯誤,說說你的測試平台吧!
系統的威力來自於程式的相互關係, 而非來自程式本身
is the idea that the power of a system comes more from the relationships among programs than from the programs themselves.

(英文語法怪怪的......誰能提供完整的版本?)
sppmg
活潑的高中生
活潑的高中生
 
文章: 317
註冊時間: 週五 8月 04, 2006 3:47 pm
來自: 臺灣

文章firecontrol » 週三 10月 15, 2008 4:27 pm

哦哦~ 我也試了上述的指令cp `find . -size -12k` /tmp,這是合法的,沒有問題,sppmg理解的觀念是沒有錯的,dustin 和 eddyliu 測試平台可能有問題喲!又或者在測試時指令格式有不正確的地方吧!
旋渦的迷惑,是一生美麗的負荷
firecontrol
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週三 10月 15, 2008 4:25 pm
來自: tainan


回到 debian command

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客