一天一个linux小技巧|.(点)是什么意思
“.”點命令是shell的一個內部命令,它從指定的shell 文件中讀入所有命令語句并在當前進程中執行。
因此當多個shell進程(父子進程或無關進程均可)共享一組變量值時,就可以將這些變量賦值語句定義到一個shell文件里,并在需要這些變量值的程序中使用點語句來引用這個shell文件,從而實現變量值共享(對這些變量值的修改僅涉及到這個shell文件)。
但要注意的是,這個shell文件不能包括含有位置參數的語句,即不能接受$1、$2等命令行參數。
就拿這個不起眼的點(.)來說吧。當它放在一個需要一個目錄名稱的命令的參數處時,表示“當前目錄”:
find . -name "*.jpg"意思就是“在當前目錄(包括子目錄)中尋找以 .jpg 結尾的文件”。
ls . 和 cd . 結果也如你想的那樣,它們分別列舉和“進入”到當前目錄,雖然在這兩種情況下這個點都是多余的。
而一個緊接著另一個的兩個點呢,在同樣的場景下(即當你的命令期望一個文件目錄的時候)表示“當前目錄的父目錄”。如果你當前在 /home/your_directory 下并且運行:
cd ..你就會進入到 /home。所以,你可能認為這仍然適合“點代表附近目錄”的敘述,并且毫不復雜,對吧?
那下面這樣會怎樣呢?如果你在一個文件或目錄的開頭加上點,它表示這個文件或目錄會被隱藏:
$ 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$ # 注意上面列舉的文件中沒有 .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$ # 這個 -a 選項告訴 ls 去展示“all”文件,包括那些隱藏的然后就是你可以將 . 當作命令。是的,你聽我說:. 是個真真正正的命令。它是 source命令的代名詞,所以你可以用它在當前 shell 中執行一個文件,而不是以某種其它的方式去運行一個腳本文件(這通常指的是 Bash 會產生一個新的 shell 去運行它)
總結
以上是生活随笔為你收集整理的一天一个linux小技巧|.(点)是什么意思的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python面向对象程序设计
- 下一篇: Linux中ip经常改变解决(本人亲测,