[閒聊] 請問 cp 的逸事

看板Linux作者 (pp)時間16年前 (2009/10/11 07:21), 編輯推噓4(403)
留言7則, 3人參與, 最新討論串1/1
一開始,我 copy 一百個以數字為檔名的檔案 (001.jpg, 002.jpg, 003.jpg, ... 099.jpg, 100.jpg),copy 到隨身碟上。 cp source_direction/* target_direction 瞬間,一秒就完成,可是我要拔隨身碟的時候,等 sync 等了好些時候。 後來,我發現 target_direction 目錄裡面的檔案,並不是按照檔名順序排的。 就是說:非 001.jpg, 002.jpg, 003.jpg, 004.jpg, 005.jpg, .... 而是這樣排 045.jpg, 082.jpg, 034.jpg, 017.jpg, 062.jpg, .... 檔案都有,但是就是看不出來,是依時間,或是大小 copy 進去的。 後來我全殺掉 rm -f target_direction/* 然後再 copy 乙次 cp source_direction/0??.jpg target_direction 這時,怪事出現了,他真的是一個一個 copy,按照檔名的順序來 copy 不會像上次一樣,立刻出現提示符號,然後再慢慢 sync 而是真的寫入一個,再寫入一個,(因為我開另一個終端機, ls 看他真的慢慢 copy) 我猜想, cp * 的時候,他是開多個線程(我猜的),一股腦,不依順序,趕快 copy 然後呢, cp ? 的時候,則是尋到符合的,然後才 copy 進去,所以會照檔名順序 不知道,有否專研 kernel 的大大,可以公佈正確解答嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.99.69

10/11 10:32, , 1F
ftp://ftp.gnu.org/gnu/coreutils/coreutils-5.0.tar.gz
10/11 10:32, 1F

10/11 10:33, , 2F
有興趣可以看原始碼歐
10/11 10:33, 2F

10/11 11:43, , 3F
樓上太威了...
10/11 11:43, 3F

10/11 12:12, , 4F
* 和 ? 是shell的事,和cp指令無關,欲之詳情
10/11 12:12, 4F

10/11 12:13, , 5F
請見UNIX PowerTools 這本書(有中譯本)
10/11 12:13, 5F

10/11 13:14, , 6F
O'reilly
10/11 13:14, 6F

10/11 13:43, , 7F
忘記說,作者之一就是O'reilly的老闆Tim O'Reilly
10/11 13:43, 7F
文章代碼(AID): #1AqHRXtY (Linux)
文章代碼(AID): #1AqHRXtY (Linux)