【Linux】目錄的相關命令——cd,pwd,mkdir,rmdir

1.相對路徑與絕對路徑

在開始目錄的切換之前,你必須要先了解一下所謂的路徑(PATH),有趣的是:什么是相對路
與絕對路徑?

  1. 絕對路徑路徑的寫法“一定由根目錄/寫起”,例如:/usr/share/doc 這個目錄。
  2. 相對路徑路徑的寫法“不是由/寫起”,例如由/usr/share/doc 要到/usr/share/man下面時,可以寫成:“cd./man”這就是相對路徑的寫法,相對路徑意指相對于目前工作目錄的路徑。

2.目錄的相關操作

Linux下有哪些比較特殊的目錄?

舉例來說,下面這些就是比較特殊的目錄,得要用力地記下來才行:

  1. .:代表此層目錄。
  2. ..:代表上一層目錄。
  3. -:代表前一個工作目錄。
  4. ~:代表目前使用者身份所在的家目錄.
  5. ~account: 代表account 這個使用者的家目錄(account是個賬號名稱)。

需要特別注意的是:在所有目錄下面都會存在的兩個目錄,分別是“.”與“..”分別代表此層與
上層目錄的意思。

那么來思考一下下面這個例題:

請問在Linux下面,根目錄下有沒有上層目錄(.)存在?
????????答:若使用“Is一al? /”去查詢,可以看到根目錄下確實存在,與.兩個目錄,再仔細查看,可發現這兩個目錄的屬性與權限完全一致,這代表根目錄的上一層(.)與根目錄自己(.)是同一個目錄。

下面我們就來談一談幾個常見的處理目錄的命令;

  1. cd:切換目錄
  2. pwd:顯示當前目錄
  3. mkdir:建立一個新目錄
  4. rmdir:刪除一個空目錄
  5. cd :(change directory,切換目錄)

2.1.cd (change directory,切換目錄)

它的一般用法是:cd [相對路徑或絕對路徑]

?我們知道zs_108?這個用戶的家目錄是/home/zs_108/,而root 家目錄則是/root/,假設我以root
身份在Linux 系統中,那么簡單說明一下這幾個特殊目錄的意義是:

先切換身份成為root看看。


代表進入zs_108?這個使用者的家目錄,亦即/home/zs_108。


表示回到自己的家目錄,亦即是/root這個目錄。


#沒有加上任何路徑,也還是代表回到自己家目錄的意思。

#表示去到目前的上層目錄,亦即是/root的上層目錄的意思。

表示回到剛剛的那個目錄,也就是/root。


這個就是絕對路徑的寫法。直接指定要去的完整路徑名稱。

這個是相對路徑的寫法,我們由/var/spoo1/mai1到/var/spool/postfix就這樣寫。

????????cd 是Change Directory的縮寫,這是用來切換工作目錄的命令,注意目錄名稱與cd命令之間存在一個空格。

????????當登錄Linux系統后,每個賬號都會在自己賬號的家目錄中,那回到上一層目錄可以用“cd ..”。利用相對路徑的寫法必須要確認你目前的路徑才能正確地去到想要去的目錄。

例如上面當中最后一個例子,你必須要確認你是在/var/spool/mail 當中,并且知道在/var/spool 當中有個mqueue的目錄才行,這樣才能使用cd烈/postfix進入正確的目錄,否則就要直接輸入cd/var/spool/postfix。
????????其實,我們的提示字符,亦即那個【root@hcss-ecs-b4c3 ~]#當中,就已經有指出當前目錄了,剛登錄時會到自己的家目錄,而家目錄還有一個符號,那就是“~”。

????????例如上面的例子可以發現,使用“cd~”可以回到自己的家目錄里面。另外,針對cd的使用方法,如果僅輸入cd時,代表的就是“cd~”的意思,亦即回到自己的家目錄。而那個“cd-”比較難以理解,請自行多做幾次練習,就會明白了。

????????還是要一再地提醒,我們的Linux的默認命令行模式(bash shell)具有文件補齊功能,你要常常利用[Tab]按鍵來自動補全目錄路徑。這可是個好習慣,可以避免你按錯鍵盤輸入錯字。

2.2.pwd(顯示目前所在的目錄)


選項與參數:

  • -P:顯示出真正的路徑,而非使用鏈接(link)路徑。

范例1:單純顯示出目前的工作目錄。

范例2:顯示出實際的工作目錄,而非鏈接文件本身的目錄名而已,

注意,/var/mail是一個鏈接文件.

怎么回事?有沒有加-P差很多.

看到這里應該知道為啥了吧?

????????因為/var/mail是鏈接文件,鏈接到/var/spool/mail。#所以,加上pwd -P的選項后,不會顯示鏈接文件的路徑,而是顯示正確的完整路徑。

????????pwd是Print Working Directory的縮寫,也就是顯示目前所在目錄的命令,例如在上面最后的目錄是/var/mail,但是提示字符僅顯示mail,如果你想要知道目前所在的目錄,可以輸入pwd即可。

????????此外,由于很多的軟件所使用的目錄名稱都相同,例如/usr/local/etc和/etc,但是通常Linux僅列出最后面那一個目錄而已,這個時候你就可以使用pwd 來知道你的所在目錄,免得搞錯目錄,造成損失。

????????其實有趣的是那個 -P的選項。它可以讓我們取得正確的目錄名稱,而不是以鏈接文件的路徑來顯示的。如果你使用的是CentOS 7.x的話,剛好/var/mail 是/var/spool/mail的鏈接文件,通過到/var/mail 執行pwd-P就能夠知道這個選項的意義。

2.3.mkdir(建立新目錄)

mkdir[-mp]目錄名稱

選項與參數:

  • -m:設置文件的權限。直接設置,不使用默認權限(umask).
  • -p:幫助你直接將所需要的目錄(包含上層目錄)遞歸創建。

范例:請到/tmp 下面嘗試建立數個新目錄看看:

#話說,系統告訴我們,不可能建立這個目錄,就是沒有目錄才要建立的,見鬼嘛?



原來是要建test4上層沒先建test3的原因,加了這個-p的選項,可以自行幫你建立多層目錄,

范例:建立權限為rwx--x--x的目錄。

仔細看上面的權限部分,如果沒有加上-m來強制設置屬性,系統會使用默認屬性,那么你的默認屬性是什么?這要通過umask才能了解.

如果想要建立新的目錄的話,那么就使用mkdir (make directory)吧!

????????不過,在默認的情況下,你所需要的目錄得一層一層地建立才行。

????????例如:假如你要建立一個目錄為/home/bird/testing/test1,那么首先必須要有/home 然后/home/bird,再來/home/bird/testing 都必須要存在,才可以建立/home/bird/testing/test1這個目錄。假如沒有/home/bird/testing時,就沒有辦法建立test1的目錄。

????????不過,現在有個更簡單有效的方法,那就是加上-p 這個選項,你可以直接執行:“mkdir -p/home/bird/testing/test1”則系統會自動幫你將/home、/home/bird、/home/bird/testing 依序地建立起目錄。并且,如果該目錄本來就已經存在時,系統也不會顯示錯誤信息。挺快樂吧!

不過不建議常用-p這個選項,因為擔心如果你打錯字,那么目錄名稱就會變得亂七八糟。

????????另外,有個地方你必須要先有概念,那就是默認權限。我們可以利用-m來強制設置一個新目錄相關的權限,例如上表當中,我們給予-m711來給予新的目錄drwx--x--x的權限。不過,如果沒有使用-m選項時,那么默認的新建目錄權限又是什么?這個跟umask有關、

2.4.rmdir(刪除“空”的目錄)

rmdir [-p]目錄名稱

選項與參數:

  • -p:連同上層“空的”目錄也一起刪除.

范例:將于mkdir 范例中建立的目錄(/tmp下面)刪除掉。
可直接刪除掉,沒問題

因為尚有內容,所以無法刪除.

您看看,下面的輸出中test與test1不見了。

????????使用-p選項,立刻可將 test1/test2/test3/test4一次刪除,不過要注意,這個rmdir 僅能“刪除空目錄”.這個-p選項是從test4開始,因為test4是空的,就被刪除了,回到test3,因為test4被刪除了,test3就變空了,然后test3被刪除,依次類推

如果想要刪除舊有的目錄時,就使用rmdir。

例如將剛剛建立的test 刪掉,使用【rmdir test】即可。

請注意,目錄需要一層一層的刪除才行,而且被刪除的目錄里面必定不能存在其他的目錄或文件,這也是所謂的空目錄(empty directory)的意思。

那如果要將所有目錄下的東西都刪除?

這個時候就必須使用【rm? -r test 】。不過,還是使用rmdir 比較安全,你也可以嘗試以-p選項來刪除上層空的目錄。


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43287.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java版Flink使用指南——定制RabbitMQ數據源的序列化器

大綱 新建工程新增依賴數據對象序列化器接入數據源 測試修改Slot個數打包、提交、運行 工程代碼 在《Java版Flink使用指南——從RabbitMQ中隊列中接入消息流》一文中,我們從RabbitMQ隊列中讀取了字符串型數據。如果我們希望讀取的數據被自動化轉換為一個對象&#x…

Linux C++ 043-機房預約系統

Linux C 043-機房預約系統 本節關鍵字:Linux、C、機房預約系統 相關庫函數:for_each、open、close、write 系統簡介 學校現在有幾個規格不同的機房,由于使用經常出現撞車現象,現開發一套機房預約系統,解決這一問題。…

Java進階---抽象方法abstract

抽象方法 案例引入: 在某個寵物店的寵物資源管理系統中有: 狗類:屬性(姓名),行為(吃飯) 貓類:屬性(姓名),行為(吃飯)利用…

智慧科技照亮水利未來:深入剖析智慧水利解決方案如何助力水利行業實現高效、精準、可持續的管理

目錄 一、智慧水利的概念與內涵 二、智慧水利解決方案的核心要素 1. 物聯網技術:構建全面感知網絡 2. 大數據與云計算:實現數據高效處理與存儲 3. GIS與三維可視化:提升決策支持能力 4. 人工智能與機器學習:驅動決策智能化 …

LibreOffice的國內鏡像安裝地址和node.js國內快速下載網站

文章目錄 1、LibreOffice1.1、LibreOffice在application-conf.yml中的配置2、node.js 1、LibreOffice 國內鏡像包網址:https://mirrors.cloud.tencent.com/libreoffice/libreoffice/ 1.1、LibreOffice在application-conf.yml中的配置 jodconverter:local:enable…

Java面試八股之MySQL中int(10)和bigint(10)能存儲讀的數據大小一樣嗎

MySQL中int(10)和bigint(10)能存儲讀的數據大小一樣嗎 在MySQL中,int(10)和bigint(10)的數據存儲能力并不相同,盡管括號內的數字(如10)看起來似乎暗示著某種關聯,但實際上這個數字代表的是顯示寬度,而不是…

vue學習day03-指令修飾符、v-bind對于樣式控制的增強、v-model應用于其他表單元素

7、指令修飾符 (1)概念: 通過“.”指明一些指令后綴,不同后綴封裝了不同的處理操作->簡化代碼 (2)按鍵修飾符 keyup.enter->鍵盤回車監聽 (3)v-model修飾符 v-model.tri…

vue + element ui 實現側邊欄導航欄折疊收起

首頁布局如下 要求點擊按鈕,將側邊欄收縮, 通過 row 和 col 組件&#xff0c;并通過 col 組件的 span 屬性我們就可以自由地組合布局。 折疊前 折疊后 <template><div class"app-layout" :class"{ collapse: app.isFold }"><div class&…

Onekey正版steam分流下載工具

今天給大家介紹的是一款下載steam游戲的工具。Onekey工具&#xff0c;是一款游戲下載器&#xff0c;可以下載steam正版分流游戲。下載正版分流的網站很多&#xff0c;但是都是網盤或者迅雷下載&#xff0c;或者游戲盒子下載&#xff0c;速度都很慢。這款軟件是用steam下載的&am…

Flask項目搭建及部署 —— Python

flask搭建及部署 pip 19.2.3 python 3.7.5 Flask 1.1.1 Flask-SQLAlchemy 2.4.1 Pika 1.1.0 Redis 3.3.11 flask-wtf 0.14.2 1、創建flask項目&#xff1a; 創建完成后整個項目結構樹&#xff1a; app.py: 項?管理?件&#xff0c;通過它管理項?。 static: 存放靜態…

自定義控件視圖篇(一)測量與布局

在自定義控件的開發過程中&#xff0c;"視圖篇"的測量與布局是非常關鍵的步驟&#xff0c;這直接決定了控件的尺寸、位置以及子視圖的排列方式。下面我將詳細介紹測量和布局的過程&#xff0c;以及如何在自定義控件中正確實現這些步驟。 視圖的測量 (onMeasure) 在…

2021版本的idea熱部署的詳細步驟

背景&#xff1a;我是自己用的是2021版本的idea,然后發現跟2023版本的熱部署不太一樣&#xff0c;所以&#xff0c;今天自己出一期這樣的文章吧&#xff01;&#xff01;&#xff01;其他人配置的時候根據自己的情況&#xff0c;來閱讀吧&#xff01; 第一步&#xff1a;方式一…

MyBatis是如何分頁的及原理

MyBatis 是一種持久層框架&#xff0c;支持通過配置文件和注解將 SQL 映射為 Java 對象。在實際開發中&#xff0c;查詢數據時經常需要進行分頁處理。 MyBatis 也提供了支持分頁的方案&#xff0c;其主要思路是使用 Limit 偏移量和限制個數&#xff0c;來獲取指定數量的數據。下…

音視頻入門基礎:H.264專題(10)——FFmpeg源碼中,存放SPS屬性的結構體和解碼SPS的函數分析

一、引言 FFmpeg源碼對AnnexB包裝的H.264碼流解碼過程中&#xff0c;通過ff_h2645_extract_rbsp函數拿到該H.264碼流中的某個NALU的NALU Header RBSP后&#xff08;具體可以參考&#xff1a;《FFmpeg源碼&#xff1a;ff_h2645_extract_rbsp函數分析》&#xff09;&#xff0c…

【沐風老師】3DMAX建筑體塊生成插件BuildingBlocks使用方法詳解

BuildingBlocks建筑體塊生成插件使用方法詳解 聽說你還在手動建配景樓&#xff1f;有了BuildingBlocks這個插件&#xff0c;一分鐘搞定喔&#xff01; 3DMAX建筑體塊生成插件BuildingBlocks&#xff0c;用于快速自定義街道及生成配景樓區塊。 【適用版本】 3dMax2019及更高版…

空間分析在3D應用中的革命:提升投資回報與業務價值

在3D應用的浪潮中&#xff0c;空間分析技術正成為提升用戶體驗、優化業務決策和解決復雜問題的關鍵工具。本文將深入探討空間分析如何通過提供深度用戶行為洞察和數據可視化&#xff0c;增強3D應用的實際效益和市場競爭力。 一、空間分析的概念與背景 Tony Bevilacqua&#x…

分布式I/O從站的認知

為什么需要分布式I/O從站&#xff1f; 當PLC與控制機構距離過遠時&#xff0c;遠距離會帶來信號干擾&#xff0c;分布式I/O從站只需要一個網絡線纜連接。 ET200分布式I/O從站家族 體積緊湊、功能強大。 ET200SP ET200M ET200S ET200iSP ET200 AL ET200pro ET200 eco PN 通訊協議…

DSSM雙塔特征交互

傳統的DSSM雙塔無法在早期進行user和item側的特征交互&#xff0c;這在一定程度上降低了模型性能。我們想要對雙塔模型進行細粒度的特征交互&#xff0c;同時又不失雙塔模型離線建向量索引的解耦性。下面介紹兩篇這方面的工作。 美團-Dual Augmented Two-tower 在user和item的特…

1. CSS Grid 網格布局教程

CSS Grid 網格布局教程 一、概述 網格布局&#xff08;Grid&#xff09;是最強大的 CSS 布局方案。 它將網頁劃分成一個個網格&#xff0c;可以任意組合不同的網格&#xff0c;做出各種各樣的布局。以前&#xff0c;只能通過復雜的 CSS 框架達到的效果&#xff0c;現在瀏覽器…

linux工具應用_VERDI

verdi 1. 基礎知識1.1 verdi介紹1.2 fsdb文件2. fsdb dump2.1 1st step-設置環境變量LD_LIBRARY_PATH2.2 2nd step-xrun仿真命令2.3 3rd step-仿真過程中調用fsdb函數dump波形2.3.1 在testbench、top.sv中調用fsdb函數2.3.2 在tcl腳本中用xrun的dump指令(同樣要調用fsdb函數)2.…