Linux目錄和文件——操作目錄和文件

来源:https://www.cnblogs.com/shamao/archive/2019/07/10/11163044.html
-Advertisement-
Play Games

Linux目錄和文件——操作目錄和文件 摘要:本文主要學習了Linux系統中關於目錄和文件的操作。 cd命令 cd命令用來切換工作目錄,是Change Directory的縮寫。 基本語法 特殊符號 使用舉例 pwd命令 pwd命令的功能是顯示用戶當前所處的工作目錄,是Print Working D ...


Linux目錄和文件——管理目錄和文件的命令

摘要:本文主要學習了Linux系統中關於目錄和文件的操作。

cd命令

cd命令用來切換工作目錄,是Change Directory的縮寫。

基本語法

1 [root@localhost ~]# cd 相對路徑或絕對路徑

特殊符號

1 ~:代表當前登錄用戶的主目錄。
2 ~用戶名:表示切換至指定用戶的主目錄。
3 -:代表上次所在目錄。
4 .:代表當前目錄。
5 ..:代表上級目錄。

使用舉例

1 [root@localhost ~]# cd /
2 [root@localhost /]# cd /usr/local
3 [root@localhost local]# cd ..
4 [root@localhost usr]# cd /home
5 [root@localhost home]# cd ~
6 [root@localhost ~]# 

pwd命令

pwd命令的功能是顯示用戶當前所處的工作目錄,是Print Working Directory的縮寫。

基本語法

1 [root@localhost ~]# pwd [選項]

選項說明

1 -P:顯示鏈接的真實路徑。

使用舉例

1 [root@localhost ~]# pwd
2 /root
3 [root@localhost ~]#

ls命令

ls命令的主要功能是顯示當前目錄下的內容,是最常見的目錄操作命令,是List的縮寫。

基本語法

1 [root@localhost ~]# ls [選項] 文件或目錄

選項說明

 1 -a:顯示全部的文件,包括隱藏文件(開頭為.的文件)也一起羅列出來,這是最常用的選項之一。
 2 -A:顯示全部的文件,連同隱藏文件,但不包括.與..這兩個目錄。
 3 -d:僅列出目錄本身,而不是列出目錄內的文件數據。
 4 -f:直接列出結果,而不進行排序,ls預設會以文件名排序。
 5 -F:在文件或目錄名後加上文件類型的指示符號:
 6     *代表可運行文件,/代表目錄,=代表socket文件,|代表FIFO文件。
 7 -h:以人們易讀的方式顯示文件或目錄大小,如1KB、234MB、2GB等。
 8 -i:顯示inode節點信息。
 9 -l:使用長格式列出文件和目錄信息,包括屬性和許可權等等。
10 -n:以UID和GID分別代替文件用戶名和群組名顯示出來。
11 -r:將排序結果反向輸出,比如,若原本文件名由小到大,反向則為由大到小。
12 -R:連同子目錄內容一起列出來,等於將該目錄下的所有文件都顯示出來。
13 -S:按文件容量大小排序,而不是按文件名排序。
14 -t:按時間排序,而不是按文件名排序。
15 --color=never:不依據文件特性給予顏色顯示。
16 --color=always:根據文件特性給予顏色顯示,預設。
17 --color=auto:讓系統自行依據配置來判斷是否給予顏色。
18 --full-time:以完整時間模式(包含年、月、日、時、分)輸出。
19 --time={atime,ctime}:輸出access時間或改變許可權屬性時間(ctime),而不是內容變更時間(modification time)。

使用舉例

 1 [root@localhost /]# ls
 2 bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
 3 [root@localhost /]# ls -a
 4 .  ..  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
 5 [root@localhost /]# ls -l
 6 總用量 32
 7 lrwxrwxrwx.   1 root root    7 7月   3 16:09 bin -> usr/bin
 8 dr-xr-xr-x.   4 root root 4096 7月   3 16:17 boot
 9 ...
10 drwxr-xr-x.  13 root root 4096 7月   3 16:09 usr
11 drwxr-xr-x.  19 root root 4096 7月   3 16:20 var
12 [root@localhost /]# ls -lh
13 總用量 32K
14 lrwxrwxrwx.   1 root root    7 7月   3 16:09 bin -> usr/bin
15 dr-xr-xr-x.   4 root root 4.0K 7月   3 16:17 boot
16 ...
17 drwxr-xr-x.  13 root root 4.0K 7月   3 16:09 usr
18 drwxr-xr-x.  19 root root 4.0K 7月   3 16:20 var
19 [root@localhost /]# ls -lha
20 總用量 40K
21 dr-xr-xr-x.  17 root root 4.0K 7月   3 16:12 .
22 dr-xr-xr-x.  17 root root 4.0K 7月   3 16:12 ..
23 lrwxrwxrwx.   1 root root    7 7月   3 16:09 bin -> usr/bin
24 dr-xr-xr-x.   4 root root 4.0K 7月   3 16:17 boot
25 ...
26 drwxr-xr-x.  13 root root 4.0K 7月   3 16:09 usr
27 drwxr-xr-x.  19 root root 4.0K 7月   3 16:20 var
28 [root@localhost /]# ls -lha -S
29 總用量 40K
30 drwxr-xr-x.  76 root root 8.0K 7月   6 09:03 etc
31 dr-xr-xr-x.  17 root root 4.0K 7月   3 16:12 .
32 dr-xr-xr-x.  17 root root 4.0K 7月   3 16:12 ..
33 dr-xr-xr-x.   4 root root 4.0K 7月   3 16:17 boot
34 ...
35 dr-xr-xr-x. 365 root root    0 7月   3 16:20 proc
36 dr-xr-xr-x.  13 root root    0 7月   3 16:20 sys
37 [root@localhost /]# ls -lha -t
38 總用量 40K
39 drwxr-xr-x.  21 root root  640 7月   6 09:03 run
40 drwxr-xr-x.  76 root root 8.0K 7月   6 09:03 etc
41 ...
42 drwxr-xr-x.   2 root root    6 8月  12 2015 opt
43 drwxr-xr-x.   2 root root    6 8月  12 2015 srv
44 [root@localhost /]#

mkdir命令

mkdir命令用於創建新目錄,此命令所有用戶都可以使用,是Make Directories的縮寫。

基本語法

1 [root@localhost ~]# mkdir [選項] 目錄名

選項說明

1 -m:手動配置所創建目錄的許可權,而不再使用預設許可權。
2 -p:遞歸創建所有目錄。

使用舉例

 1 [root@localhost home]# ls -l
 2 總用量 0
 3 [root@localhost home]# mkdir /home/test
 4 [root@localhost home]# ls -l
 5 總用量 0
 6 drwxr-xr-x. 2 root root 6 7月   6 13:55 test
 7 [root@localhost home]# mkdir /home/temp/test
 8 mkdir: 無法創建目錄"/home/temp/test": 沒有那個文件或目錄
 9 [root@localhost home]# mkdir -p /home/temp/test
10 [root@localhost home]# ls -l
11 總用量 0
12 drwxr-xr-x. 3 root root 17 7月   6 13:55 temp
13 drwxr-xr-x. 2 root root  6 7月   6 13:55 test
14 [root@localhost home]#

rmdir命令

rmdir命令用於刪除空目錄,是Remove Empty Directories的縮寫。

基本語法

1 [root@localhost ~]# rmdir [選項] 目錄名

選項說明

1 -p:遞歸刪除空目錄。

使用舉例

 1 [root@localhost home]# ls -l
 2 總用量 0
 3 drwxr-xr-x. 3 root root 17 7月   6 13:55 temp
 4 drwxr-xr-x. 2 root root  6 7月   6 13:55 test
 5 [root@localhost home]# rmdir test
 6 [root@localhost home]# ls -l
 7 總用量 0
 8 drwxr-xr-x. 3 root root 17 7月   6 13:55 temp
 9 [root@localhost home]# rmdir -p temp/test/
10 [root@localhost home]# ls -l
11 總用量 0
12 [root@localhost home]# 

touch命令

touch命令用來創建空文件或者修改文件的時間參數。當文件存在時,會修改此文件的時間參數,當文件不存在時,會在當前位置建立一個空文件。

文件的時間參數

Linux系統中,每個文件主要擁有3個時間參數(通過stat命令進行查看),分別是文件的訪問時間、數據修改時間以及狀態修改時間:

訪問時間(Access Time,簡稱atime):只要文件的內容被讀取,訪問時間就會更新。例如,使用cat命令可以查看文件的內容,此時文件的訪問時間就會發生改變。

數據修改時間(Modify Time,簡稱mtime):當文件的內容數據發生改變,此文件的數據修改時間就會跟著相應改變。例如,修改了文件內容,此時間就會發生改變。

狀態修改時間(Change Time,簡稱ctime):當文件的狀態發生變化,就會相應改變這個時間。例如,如果文件的許可權或者屬性發生改變,此時間就會相應改變。

基本語法

1 [root@localhost ~]# touch [選項] 文件名

選項說明

1 -a:只修改文件的訪問時間(atime)。
2 -m:只修改文件的數據修改時間(mtime)。
3 -c:僅修改文件的時間參數(三個時間參數都改變),如果文件不存在,則不建立新文件。
4 -d:把文件的時間改為指定的日期。
5 -t:把文件的時間改為指定的時間,時間書寫格式為YYMMDDhhmm。

使用舉例

1 [root@localhost home]# ls -l
2 總用量 0
3 [root@localhost home]# touch test
4 [root@localhost home]# ls -l
5 總用量 0
6 -rw-r--r--. 1 root root 0 7月   6 18:17 test
7 [root@localhost home]#

cp命令

cp命令主要用來複制文件和目錄以及比對兩文件的新舊而予以升級等功能,是Copy的縮寫。

基本語法

1 [root@localhost ~]# cp [選項] 源文件 目標文件

選項說明

 1 -a:此參數的效果和同時指定-dpr參數相同。
 2 -d:如果源文件為軟鏈接(對硬鏈接無效),則複製出的目標文件也為軟鏈接。
 3 -f:強行複製文件或目錄,不論目標文件或目錄是否已存在。
 4 -i:覆蓋既有文件之前先詢問用戶。
 5 -l:對源文件建立硬連接,而非複製文件。
 6 -s:對源文件建立軟鏈接,而非複製文件。
 7 -p:複製後目標文件保留源文件的屬性(包括所有者、所屬組、許可權和時間)。
 8 -r/R:遞歸處理,將指定目錄下的所有文件與子目錄一併處理。
 9 -u:目標文件並不存在則複製文件,目標文件存在並且比源文件舊的時候進行覆蓋。
10 -S:在備份文件時,用指定的尾碼“SUFFIX”代替文件的預設尾碼。
11 -b:覆蓋已存在的文件目標前將目標文件備份。
12 -v:詳細顯示命令執行的操作。

使用舉例

 1 [root@localhost home]# ls
 2 aaa  test
 3 [root@localhost home]# cp test temp
 4 [root@localhost home]# ls
 5 aaa  temp  test
 6 [root@localhost home]# cp aaa bbb
 7 cp: 略過目錄"aaa"
 8 [root@localhost home]# ls
 9 aaa  temp  test
10 [root@localhost home]# cp -a aaa bbb
11 [root@localhost home]# ls
12 aaa  bbb  temp  test
13 [root@localhost home]# cp -s test link
14 [root@localhost home]# ls
15 aaa  bbb  link  temp  test
16 [root@localhost home]# 

mv命令

mv命令既可以在不同的目錄之間移動文件或目錄,也可以對文件和目錄進行重命名,是Move的縮寫。

基本語法

1 [root@localhost ~]# mv [選項] 源文件 目標文件

選項說明

1 -f:強制覆蓋,如果目標文件已經存在,則不詢問,直接強制覆蓋。
2 -i:交互移動,如果目標文件已經存在,則詢問用戶是否覆蓋,預設。
3 -n:如果目標文件已經存在,則不會覆蓋移動,而且不詢問用戶。
4 -v:顯示文件或目錄的移動過程。
5 -u:若目標文件已經存在,但兩者相比,源文件更新,則會對目標文件進行升級。

使用舉例

 1 [root@localhost home]# ls
 2 aaa  bbb  link  temp  test
 3 [root@localhost home]# ls aaa
 4 demo
 5 [root@localhost home]# mv aaa/demo demo
 6 [root@localhost home]# ls
 7 aaa  bbb  demo  link  temp  test
 8 [root@localhost home]# ls aaa
 9 [root@localhost home]# ls bbb
10 demo
11 [root@localhost home]# mv bbb/demo hello
12 [root@localhost home]# ls
13 aaa  bbb  demo  hello  link  temp  test
14 [root@localhost home]# ls bbb
15 [root@localhost home]# mv temp demo
16 mv:是否覆蓋"demo"? n
17 [root@localhost home]# ls
18 aaa  bbb  demo  hello  link  temp  test
19 [root@localhost home]# mv -f temp demo
20 [root@localhost home]# ls
21 aaa  bbb  demo  hello  link  test
22 [root@localhost home]# 

rm命令

rm命令可以永久性地刪除文件系統中指定的文件或目錄,是Remove的縮寫。在使用rm命令刪除文件或目錄時,系統不會產生任何提示信息。

註意,rm命令是一個具有破壞性的命令,因為rm命令會永久性地刪除文件或目錄,這就意味著,如果沒有對文件或目錄進行備份,一旦使用rm命令將其刪除,將無法恢復,因此,尤其在使用rm命令刪除目錄時,要慎之又慎。

基本語法

1 [root@localhost ~]# rm [選項] 文件或目錄

選項說明

1 -f:強制刪除(force),系統將不再詢問,而是直接刪除目標文件或目錄。
2 -i:在刪除文件或目錄之前,系統會給出提示信息,可以有效防止不小心刪除有用的文件或目錄。
3 -r:遞歸刪除,主要用於刪除目錄,可刪除指定目錄及包含的所有內容,包括所有的子目錄和文件。

使用舉例

 1 [root@localhost home]# ls
 2 aaa  bbb  demo  hello
 3 [root@localhost home]# rm demo
 4 rm:是否刪除普通文件 "demo"?y
 5 [root@localhost home]# ls
 6 aaa  bbb  hello
 7 [root@localhost home]# rm -f hello
 8 [root@localhost home]# ls
 9 aaa  bbb
10 [root@localhost home]# rm bbb
11 rm: 無法刪除"bbb": 是一個目錄
12 [root@localhost home]# rm -r bbb
13 rm:是否刪除目錄 "bbb"?y
14 [root@localhost home]# ls
15 aaa
16 [root@localhost home]# rm -r aaa
17 rm:是否進入目錄"aaa"? n
18 [root@localhost home]# ls
19 aaa
20 [root@localhost home]# rm -rf aaa
21 [root@localhost home]# ls
22 [root@localhost home]# 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.在選擇系統菜單界面,按 "e" 進入編輯模式 2.在以字元串“Linux16”開頭的行,將游標移動到該行的結尾,然後輸入“init=/bin/bash”,按 "Ctrl+x"進入單用戶模式 3.輸入 "mount -o rw,remount" ,重新掛載目錄,輸入 "passwd root" 修 ...
  • 1:創建一個要提交的文件2 git init 初始化 3 git remote add origin https://github.com/maohongli/cang.git 建立遠程連接4 git status5 git add -A 創建6 git commit -m "是" 7 git pu ...
  • 本文主要學習在Linux系統中使用Vim文本編輯器編輯文本。 ...
  • 1.製作塊文件 3 個 2.創建迴環設備 關於迴環設備是什麼可以參考如下解釋: 迴環設備( 'loopback device')允許用戶以一個普通磁碟文件虛擬一個塊設備。設想一個磁碟設備,對它的所有讀寫操作都將被重定向到讀寫一個名為 disk-image 的普通文件而非操作實際磁碟或分區的軌道和扇區 ...
  • scp命令用於Linux 之間複製文件和目錄。如果想在windows 環境中使用需要安裝 linux 命令環境,比如 cmder scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。 語法: 簡易寫法 參數說明 如果遠程伺服器防火牆有為scp命 ...
  • 一、NVIDIA顯卡驅動 打開終端,輸入: 在新打開的文件夾中,進入以下路徑(不要用命令行): 這時會有幾個文件夾,對每個文件夾都進行以下操作(不要用命令行): 打開終端,輸入: 把下載的顯卡驅動改為簡單的名字,比如2080.run,放到home目錄下 按 Ctrl + Alt + F1,登錄 輸入 ...
  • Linux LVM邏輯捲配置過程詳解(創建、增加、減少、刪除、卸載) 許多Linux使用者安裝操作系統時都會遇到這樣的困境:如何精確評估和分配各個硬碟分區的容量,如果當初評估不准確,一旦系統分區不夠用時可能不得不備份、刪除相關數據,甚至被迫重新規劃分區並重裝操作系統,以滿足應用系統的需要。 LVM是 ...
  • yum( Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。 基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 yum ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...