檔案系統中的目錄與切換操作
持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第9天,點選檢視活動詳情
cd
cd
,change directory,切換當前工作目錄。
除指定目錄外,還有以下特殊目錄。
.
: 當前工作目錄。..
: 父級工作目錄。/
: 根目錄。~
: home 目錄,即當前的使用者目錄,同時也可用環境變數$HOME
表示。假設當前使用者為 shanyue,則 ~ 目錄為/Users/shanyue
(mac系統)。
另外,cd -
為進入上一次的工作目錄,如同 git checout -
切回上次的分支一樣。
bash
$ cd ~
$ cd -
$ cd $HOME
除 cd
外,有一個擁有強大功能切換目錄的小工具 autojump。
autojump
需要進行手動下載。
``` bash
切換至含有 foo 子字串的某個目錄
$ j foo ```
Q: 你知道 autojump 原理嗎,你可以寫出來一個
autojump
命令列小工具嗎?
pwd
pwd
,print working directory,列印當前工作目錄。
``` bash
列印當前路徑,該目錄為 react 原始碼內容
$ pwd /Users/shanyue/Documents/react ```
ls
ls
,列出某個工作目錄的內容。
ls
單指令不會列出以 .
開頭的檔案,比如 .git
、 .babelrc
、.eslintrc
均不會預設顯示。而使用 -a
,將會把所有檔案列出。
在日常工作中,常使用 ls -lah
列出工作目錄內容。
``` bash
-l: 使用長列表格式
-a: 列出所有檔案,包括以 . 開頭的檔案
-h: 以可讀的形式表示檔案體積,比如 100M
$ ls -lah total 2176 drwxr-xr-x 36 shanyue shanyue 1.1K 6 10 15:45 . [email protected] 242 shanyue shanyue 7.6K 5 29 09:37 .. drwxr-xr-x 3 shanyue shanyue 96B 6 10 15:45 .circleci drwxr-xr-x 3 shanyue shanyue 96B 6 10 15:45 .codesandbox -rw-r--r-- 1 shanyue shanyue 294B 5 22 2021 .editorconfig -rw-r--r-- 1 shanyue shanyue 759B 6 10 15:45 .eslintignore -rw-r--r-- 1 shanyue shanyue 8.4K 6 10 15:45 .eslintrc.js drwxr-xr-x 14 shanyue shanyue 448B 6 10 15:45 .git -rw-r--r-- 1 shanyue shanyue 12B 5 22 2021 .gitattributes drwxr-xr-x 6 shanyue shanyue 192B 9 8 2021 .github -rw-r--r-- 1 shanyue shanyue 881B 6 10 15:45 .gitignore -rw-r--r-- 1 shanyue shanyue 7.6K 5 22 2021 .mailmap -rw-r--r-- 1 shanyue shanyue 9B 6 10 15:45 .nvmrc -rw-r--r-- 1 shanyue shanyue 546B 6 10 15:45 .prettierignore -rw-r--r-- 1 shanyue shanyue 363B 5 22 2021 .prettierrc.js -rw-r--r-- 1 shanyue shanyue 3B 5 22 2021 .watchmanconfig -rw-r--r-- 1 shanyue shanyue 42K 5 22 2021 AUTHORS -rw-r--r-- 1 shanyue shanyue 198K 6 10 15:45 CHANGELOG.md -rw-r--r-- 1 shanyue shanyue 3.5K 5 22 2021 CODE_OF_CONDUCT.md -rw-r--r-- 1 shanyue shanyue 216B 5 22 2021 CONTRIBUTING.md -rw-r--r-- 1 shanyue shanyue 1.1K 5 22 2021 LICENSE -rw-r--r-- 1 shanyue shanyue 5.1K 6 10 15:45 README.md -rw-r--r-- 1 shanyue shanyue 1.5K 6 10 15:45 ReactVersions.js -rw-r--r-- 1 shanyue shanyue 400B 5 22 2021 SECURITY.md -rw-r--r-- 1 shanyue shanyue 671B 9 2 2021 appveyor.yml -rw-r--r-- 1 shanyue shanyue 1.0K 5 22 2021 babel.config.js drwxr-xr-x 6 shanyue shanyue 192B 9 4 2021 build drwxr-xr-x 2 shanyue shanyue 64B 9 4 2021 build2 -rw-r--r-- 1 shanyue shanyue 7.5K 6 10 15:45 dangerfile.js drwxr-xr-x 23 shanyue shanyue 736B 6 10 15:45 fixtures -rw-r--r-- 1 shanyue shanyue 220B 5 22 2021 netlify.toml drwxr-xr-x 1426 shanyue shanyue 45K 9 2 2021 node_modules -rw-r--r-- 1 shanyue shanyue 7.2K 6 10 15:45 package.json drwxr-xr-x 39 shanyue shanyue 1.2K 6 10 15:45 packages drwxr-xr-x 22 shanyue shanyue 704B 9 2 2021 scripts -rw-r--r-- 1 shanyue shanyue 733K 6 10 15:45 yarn.lock ```
那在 ls
每一行都代表什麼資訊?在下一節內容講述。
Q: 如何配置顏色區分目錄和檔案呢,見下截圖。
exa
一個 ls
的替代品,擁有更友好的色彩更豐富的輸出,同時支援更豐富的選項。
``` bash
支援檢視 git 情況
$ exa -lah --git ```
tree
tree
,以樹狀圖的形式列出檔案。
該命令需要手動下載。
``` bash
macos
$ brew install tree
centos
$ yum install tree ```
可通過 -L
指定層級,平常工作可使用以下指令。
``` bash
-a: 列出所有檔案
-F: 對目錄末尾新增 /,對可執行檔案末尾新增 *
-L: 指定層級
$ tree packages/react-dom -aF -L 2
packages/react-dom
|-- README.md
|-- client.js
|-- index.classic.fb.js
|-- index.experimental.js
|-- index.js
|-- index.modern.fb.js
|-- index.stable.js
|-- npm/
| |-- client.js
| |-- index.js
| |-- profiling.js
| |-- server.browser.js
| |-- server.js
| |-- server.node.js
| |-- test-utils.js
| -- unstable_testing.js
|-- package.json
|-- server.browser.js
|-- server.js
|-- server.node.js
|-- src/
| |-- __tests__/
| |-- client/
| |-- events/
| |-- server/
| |-- shared/
|
-- test-utils/
|-- test-utils.js
|-- unstable_testing.classic.fb.js
|-- unstable_testing.experimental.js
|-- unstable_testing.js
|-- unstable_testing.modern.fb.js
`-- unstable_testing.stable.js
8 directories, 25 files ```
同時,也可以使用更高階的 exa -T
列印樹狀檔案。
``` bash
-T: --tree,以樹狀圖的形式列出檔案
-L: --level,指定層級
$ exa -lah -T -L 2 packages/react-dom ```
作業
- 熟悉 cd、pwd、ls、exa、tree 等命令
- 在
ls
單指令列出檔案列表時為何不顯示.git
目錄,應如何顯示 - 在 Node.js 或其它語言中如何獲得
pwd
- 在 Node.js 或其它語言中如何獲得
ls
子檔案列表。參考 fsp.readdir 及 readdir
- 十年經驗前端架構師求職,目標是換個大廠繼續做技術專家
- linux 中的 chmod 與 chown 命令
- 伺服器免密碼快捷登入
- 檔案系統中的目錄與切換操作
- 如何開發一個支援 SSR 同構應用的 npm 包
- 寫給前端的 nginx 配置指南,基於 docker 所有配置秒級執行
- 【前端部署附錄一】寫給前端的 docker 極簡入門
- 深圳五年經驗前端負責人求職,目標位元組 30k,關於低程式碼平臺建設及私有化定製化交付
- 成都某 985 大二學生前端面試實錄,基礎很強,強過諸多兩年經驗,期待一個實習,個人預測畢業即大廠SP Offer
- 重慶大三女生剛學了兩個月前端面試實錄,這像不像剛學前端的你們,八股文一定要背熟
- 兩年前端,廣州求職,要價 14k,依我說,小夥子可以多要點,涉及元件建設、工程化以及豐富的專案經驗
- 什麼是有區分度的好的面試問題,來看看位元組跳動這道實現非同步 sum 的問題
- 【前端部署第二篇】基於 docker/compose 部署一個最簡單的前端專案