Linux中ls h 與find name h 這兩個命令,結果不同?

時間 2021-06-15 01:01:56

1樓:

每個程式對後面跟的引數處理方式不同,find能按照萬用字元查詢檔案,是因為find就是幹這個的,而ls,你那麼用根本不對,用引號引起來了,就代表跟ls說,我只要這個檔案,而你沒有「*h」這個檔案,所以他當然找不到了,試一下把引號去掉。

2樓:

還真不是。bash在執行命令之前,會對其中的引數進行展開(Shell expansion)。展開的意思是bash定義了幾種佔位符,在執行命令之前會進行替換。

ls *.h 在執行前,bash會把當前資料夾下檔名以.h結尾的檔案搜一遍,然後還掉*.h。例如資料夾下有a.h和b.h。那麼最後的執行效果是

ls a.h b.h

如果bash找不到匹配的檔案或資料夾,就不展開,保留原值。因為你的資料夾下沒有標頭檔案,所以ls才報沒有找到*.h的檔案。

對於find命令,*.h被引號抱起來,不會對*進行展開。它使得find查詢當前資料夾和所有子資料夾下的所有標頭檔案。

顯式不展開的方式是採用引號把引數值括起來。

最後,返回home目錄的~也是bash幫你展開的。

Linux 中的 console terminal tty pty pts 有哪些區別?

藍貓淘氣三千問 說起這幾個東西,需要提一下幾十年前的計算機。40幾年前,計算機有點大,就像下圖那樣 這麼大的計算機需要控制台 console 來配置 管理和監控,所以就有了下面這個東東 console 控制台需要連線顯示裝置,當時的技術要求連線顯示裝置的線纜要短,所以控制台一般和主機放在一起。當多使...

Linux系統中,extlinux conf這個檔案是幹什麼的?

超級描邊已部署 搜了一下,貌似是syslinux引導的配置檔案電腦啟動時,會先載入MBR usr lib syslinux mbr.bin 然後MBR查詢那些活動的分割槽 標註了可啟動的 找到這個分割槽後,卷啟動記錄程式 VBR volume boot record 將被執行。如果是ext2 3 4...

Linux 系統 proc meminfo 中的 DirectMap2M DirectMap4k 是什麼意思?

海楓 如果了解Linux的虛擬記憶體機制,就會清楚以下事實 1 32位系統,核心態虛擬空間 3G,3G 896M 這段空間為線性對映空間,它直接對映到 0,896M 物理空間,這個空間在OS執行過程中永遠也不會變 2 64位系統,這個線性空間變大了,物理記憶體有多大,線性空間就有多大,這個對映也是不...