一天一个linux小技巧|.(点)是什么意思
“.”點(diǎn)命令是shell的一個(gè)內(nèi)部命令,它從指定的shell 文件中讀入所有命令語(yǔ)句并在當(dāng)前進(jìn)程中執(zhí)行。
因此當(dāng)多個(gè)shell進(jìn)程(父子進(jìn)程或無(wú)關(guān)進(jìn)程均可)共享一組變量值時(shí),就可以將這些變量賦值語(yǔ)句定義到一個(gè)shell文件里,并在需要這些變量值的程序中使用點(diǎn)語(yǔ)句來(lái)引用這個(gè)shell文件,從而實(shí)現(xiàn)變量值共享(對(duì)這些變量值的修改僅涉及到這個(gè)shell文件)。
但要注意的是,這個(gè)shell文件不能包括含有位置參數(shù)的語(yǔ)句,即不能接受$1、$2等命令行參數(shù)。
就拿這個(gè)不起眼的點(diǎn)(.)來(lái)說(shuō)吧。當(dāng)它放在一個(gè)需要一個(gè)目錄名稱(chēng)的命令的參數(shù)處時(shí),表示“當(dāng)前目錄”:
find . -name "*.jpg"意思就是“在當(dāng)前目錄(包括子目錄)中尋找以 .jpg 結(jié)尾的文件”。
ls . 和 cd . 結(jié)果也如你想的那樣,它們分別列舉和“進(jìn)入”到當(dāng)前目錄,雖然在這兩種情況下這個(gè)點(diǎn)都是多余的。
而一個(gè)緊接著另一個(gè)的兩個(gè)點(diǎn)呢,在同樣的場(chǎng)景下(即當(dāng)你的命令期望一個(gè)文件目錄的時(shí)候)表示“當(dāng)前目錄的父目錄”。如果你當(dāng)前在 /home/your_directory 下并且運(yùn)行:
cd ..你就會(huì)進(jìn)入到 /home。所以,你可能認(rèn)為這仍然適合“點(diǎn)代表附近目錄”的敘述,并且毫不復(fù)雜,對(duì)吧?
那下面這樣會(huì)怎樣呢?如果你在一個(gè)文件或目錄的開(kāi)頭加上點(diǎn),它表示這個(gè)文件或目錄會(huì)被隱藏:
$ touch somedir/file01.txt somedir/file02.txt somedir/.secretfile.txt$ ls -l somedir/total 0-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file01.txt-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file02.txt$ # 注意上面列舉的文件中沒(méi)有 .secretfile.txt$ ls -la somedir/total 8drwxr-xr-x 2 paul paul 4096 Jan 13 19:57 .drwx------ 48 paul paul 4096 Jan 13 19:57 ..-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file01.txt-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file02.txt-rw-r--r-- 1 paul paul 0 Jan 13 19:57 .secretfile.txt$ # 這個(gè) -a 選項(xiàng)告訴 ls 去展示“all”文件,包括那些隱藏的然后就是你可以將 . 當(dāng)作命令。是的,你聽(tīng)我說(shuō):. 是個(gè)真真正正的命令。它是 source命令的代名詞,所以你可以用它在當(dāng)前 shell 中執(zhí)行一個(gè)文件,而不是以某種其它的方式去運(yùn)行一個(gè)腳本文件(這通常指的是 Bash 會(huì)產(chǎn)生一個(gè)新的 shell 去運(yùn)行它)
總結(jié)
以上是生活随笔為你收集整理的一天一个linux小技巧|.(点)是什么意思的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python面向对象程序设计
- 下一篇: Linux中ip经常改变解决(本人亲测,