command-line 學(xué)習(xí):目錄操作

使用的電腦為 mac 。

參考:Learn Enough Command Line to Be Dangerous

目錄結(jié)構(gòu)

在 Unix 中的所有目錄都是 / 的子目錄洋丐。目錄以 / 開頭和分隔目錄焰盗。

/Users/yourname/ruby/projects~/ruby/projects 是一樣的难捌。

除了用戶目錄之外链烈,每個 Unix 系統(tǒng)都有用于計算機正常操作的程序的系統(tǒng)目錄。超級用戶才能修改系統(tǒng)文件或者系統(tǒng)目錄兼犯,root。以root身份登錄的超級用戶很強大集漾,以至于被認(rèn)為是一種不好的形式; 被替代的做法是作為 root 執(zhí)行的任務(wù)通常應(yīng)該使用 sudo 命令切黔。

sudo !! 會以 sudo 形式運行上一個命令。
!ls 會運行 上一個 ls 命令具篇。

sudo 命令讓普通的用戶可以像超級yo可以執(zhí)行命令

創(chuàng)建目錄

mkdir 是 make directory 的縮寫.

$ mkdir text_files

創(chuàng)建過目錄纬霞,我們可以使用通配符把所有的文本文件都轉(zhuǎn)移到這個目錄里面。

$ mv *.txt text_files/

我們可以通過 ls 確認(rèn)一下:

$ ls text_files/

ls 一個目錄驱显,可以把它包含的所有內(nèi)容都展示出來诗芜,我們可以用 -d 來僅僅展示目錄。

$ ls -d text_files/

這個常常和 -l 一起使用埃疫。

$ ls -ld text_files/

我們可以通過 cd 切換目錄伏恐。

cd 支持 Tab 自動補全。

可以只輸入部分栓霜,再按 Tab 鍵即可自動補全翠桦。如 cd tex?

cd 輸入之后,我們可以用 print working directory 命令叙淌,縮寫 pwd秤掌,還有 ls 一起配合使用來看我們是否進(jìn)入了正確的目錄。

$ pwd 看看你是否在正確的目錄結(jié)構(gòu)
$ ls 看看目錄中的內(nèi)容鹰霍,就可以確定您是都正確進(jìn)入

切換目錄

使用 cd 是最主要的切換目錄的方式闻鉴,但還有很多別的形式值得我們了解。想去上級目錄茂洒,可以使用 cd ..

如:

$ pwd
/Users/mhartl/text_files
$ cd ..
$ pwd
/Users/mhartl

如果只輸入 cd 孟岛,將會進(jìn)入用戶的根目錄。和 cd ~ 是一樣的督勺。

如果我們在其他的目錄下渠羞,使用 cd ~/text_files 這種形式可以快速進(jìn)入這個目錄中。

cd . 代表當(dāng)前目錄智哀。最常用的是移動文件或者復(fù)制文件到當(dāng)前目錄中次询。

如:

$ pwd
/Users/mhartl/text_files
$ cd ~/second_directory
$ ls
$ cp ~/text_files/sonnets.txt .
$ ls
sonnets.txt

在上面,第一次輸入 ls 沒有東西輸出瓷叫,是因為屯吊,剛剛創(chuàng)建的 second_directory 里面還是空的送巡。

另外一個用 . 的是和 find 一起使用。想 grep 一樣的強大盒卸。
如:

$ cd
$ find . -name '*.txt'
./text_files/sonnet_1.txt
./text_files/sonnet_1_reversed.txt
./text_files/sonnets.txt

這是找到當(dāng)前目錄下以及它們的子目錄中所有匹配 *.txt 的文件骗爆。
還有使用 . 的地方是 open .,在 mac 系統(tǒng)中總是可以生效蔽介。

open 命令可以打開目錄或者文件摘投,比如 open foo.pdf 將會用默認(rèn)的 pdf 預(yù)覽器打開 foo 這個 PDF 文件, open . 則是在 finder 中打開虹蓄。

最后一個切換命令是 cd -, 它會切換到上一個目錄中犀呼。
如:

$ pwd
/Users/mhartl/second_directory
$ cd ~/text_files
$ pwd
/Users/mhartl/text_files
$ cd -
/Users/mhartl/second_directory

混合命令。

如:

$ ./configure ; make ; make install

這個混合命令武花,會先執(zhí)行 make 在執(zhí)行 make install

更好一點的寫法是:

$ ./configure && make && make install

一個用 ; 分隔開圆凰,一個用 && 分隔開。使用 && 的話体箕,只有上一個命令執(zhí)行成功了才會執(zhí)行下一個命令专钉。而使用 ; 分隔,不管上一個命令是否執(zhí)行成功累铅,都會執(zhí)行下一個命令跃须。

重命名,復(fù)制和刪除目錄

重命名:

$ mkdir foo
$ mv foo/ bar/
$ cd foo/
-bash: cd: foo: No such file or directory
$ cd bar/

text_files 目錄及所有內(nèi)容 復(fù)制到 foobar 中:

$ cd
$ mkdir foobar
$ cd foobar/
$ cp -r ../text_files .
$ ls
text_files

如果僅僅是復(fù)制目錄下的所有內(nèi)容到此目錄中娃兽,要加上 /,如:

$ cp -r ../text_files/ .
$ ls
sonnet_1.txt     sonnet_1_reversed.txt sonnets.txt   text_files

如果你只是想復(fù)制文件菇民,使用 * 來表示,如:
$ cp ../text_files/* . 把 text_files 下的所有文件復(fù)制到當(dāng)前目錄下投储。

刪除目錄 rmdir第练,很難執(zhí)行成功。如:

$ cd
$ rmdir second_directory
rmdir: second_directory/: Directory not empty

當(dāng)刪除目錄的時候玛荞,99% 的記錄會出現(xiàn)上面這個錯誤娇掏,因為 rmdir 目錄必須要是空的⊙校可以使用一個更強大婴梧,但同時也更危險的命令 remove recursive force,即 rm -rf客蹋,這會刪除這個目錄塞蹭,以及這個目錄里的所有文件及子目錄,而且沒有再次的確認(rèn)提示讶坯。
如:

$ rm -rf second_directory/
$ ls second_directory
ls: second_directory: No such file or directory

如果你想找到含有 sesquipedalian 這個詞的文件番电,但是你又忘記了文件的名字了,你可以使用:

$ grep -r sesquipedalian text_files
text_files/foo/long_word.txt:sesquipedalian

由于大小寫不重要辆琅,建議在遞歸的情況下添加 -i 選項漱办,如下:

$ grep -ri sesquipedalian text_files
text_files/foo/long_word.txt:sesquipedalian

總結(jié)

Command Description Example
mkdir <name> Make directory with name $ mkdir foo
pwd Print working directory $ pwd
cd <dir> Change to <dir> $ cd foo/
cd ~/<dir> cd relative to home $ cd ~/foo/
cd Change to home directory $ cd
cd - Change to previous directory $ cd && pwd && cd -
. The current directory $ cp ~/foo.txt .
.. One directory up $ cd ..
find Find files & directories $ find . -name foo*.*
cp -r <old> <new> Copy recursively $ cp -r ~/foo .
rmdir <dir> Remove (empty) dir $ rmdir foo/
rm -rf <dir> Remove dir & contents $ rm -rf foo/
grep -ri <string> <dir> Grep recursively (case-insensitive) $ grep -ri foo bar/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末担汤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子洼冻,更是在濱河造成了極大的恐慌,老刑警劉巖隅很,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撞牢,死亡現(xiàn)場離奇詭異,居然都是意外死亡叔营,警方通過查閱死者的電腦和手機屋彪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绒尊,“玉大人畜挥,你說我怎么就攤上這事∮て祝” “怎么了蟹但?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谭羔。 經(jīng)常有香客問我华糖,道長,這世上最難降的妖魔是什么瘟裸? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任客叉,我火速辦了婚禮,結(jié)果婚禮上话告,老公的妹妹穿的比我還像新娘兼搏。我一直安慰自己,他們只是感情好沙郭,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布佛呻。 她就那樣靜靜地躺著,像睡著了一般棠绘。 火紅的嫁衣襯著肌膚如雪件相。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天氧苍,我揣著相機與錄音夜矗,去河邊找鬼。 笑死让虐,一個胖子當(dāng)著我的面吹牛紊撕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赡突,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼对扶,長吁一口氣:“原來是場噩夢啊……” “哼区赵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浪南,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤笼才,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后络凿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡送,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年絮记,在試婚紗的時候發(fā)現(xiàn)自己被綠了摔踱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怨愤,死狀恐怖派敷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撰洗,我是刑警寧澤篮愉,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站了赵,受9級特大地震影響潜支,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿汛,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一冗酿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧络断,春花似錦裁替、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锥惋,卻和暖如春昌腰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背膀跌。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工遭商, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捅伤。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓劫流,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子祠汇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容