Linux常見文件管理命令

来源:https://www.cnblogs.com/walk1314/archive/2018/02/28/8478667.html
-Advertisement-
Play Games

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。(1)目錄管理命令——ls:列出指定目錄下的內容格式:ls [OPTION]... [FILE]... -a:顯示所有文件包括隱藏文件 -A:顯示除.和..之外的所有文件 -l,--long:顯示文件的詳細屬性信息 -h:對 ...


 

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
(1)目錄管理命令
——ls:列出指定目錄下的內容
格式:ls [OPTION]... [FILE]...
   -a:顯示所有文件包括隱藏文件
   -A:顯示除.和..之外的所有文件
   -l,--long:顯示文件的詳細屬性信息
   -h:對文件大小進行單位換算,可能影響精度
   -d:查看目錄本身而非其內部的文件
   -r:逆序顯示文件
   -R:遞歸顯示文件
示例:ls -lah / --詳細顯示/目錄下的所有文件(包括隱藏文件)
   ls -ldh /etc --詳細顯示/etc目錄本身
   ls -lhv / --倒序顯示/目錄下所有文件(包括隱藏文件)
   ls -R /etc    --遞歸顯示/etc下所有文件
——mkdir:創建目錄
格式:mkdir [OPTION]... DIRECTORY...
   -p:自動按需創建父目錄
   -m:創建目錄時給定許可權
示例:mkdir -p /data/test/A/B --在/data目錄下遞歸創建/test/A/B三個目錄
   mkdir -m 711 -p /data/MODE/A --在/data目錄下遞歸創建MODE/A兩個目錄同時指定目錄A的許可權為711
——rmdir:刪除目錄
格式:rmdir [OPTION]... DIRECTORY...
   -p:刪除目錄後如果其父目錄為空,則一併刪除
示例:rmdir -p /data/test/A --刪除A目錄後,test目錄為空,一併刪除
——cd:切換目錄
示例:cd ..:切換到上級目錄
   cd ~:切換回自己的家目錄
   cd -:在上一次目錄與當前目錄直接來回切換
——pwd:顯示當前目錄
(2)文件管理命令
——cp:複製
格式:單源複製:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)
   多源複製:cp [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
   -i:互動式複製,即覆蓋前提醒用戶確認
   -f:強制覆蓋目標文件
   -r,-R:遞歸複製目錄
示例:cp -if /data/[1-3].txt /data/test --test必須為目錄,把三個文件一起複制到test中
   cp -r /data /practice --把data目錄及目錄下的內容一起複制到practice中
——mv:剪切
格式:單源複製:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)
   多源複製:mv [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
   -i:互動式複製,即覆蓋前提醒用戶確認
   -f:強制覆蓋目標文件
示例:mv -i /data/[1-3].txt /practice --把/data目錄下三個txt文件剪切到/practice下
——rm:刪除
格式:rm [OPTION]... FILE...
   -i:互動式複製,即覆蓋前提醒用戶確認
   -f:強制覆蓋目標文件
   -r,-R:遞歸處理,將制定目錄下的所有文件包括目錄一併刪除
示例:rm -rf /practice --遞歸刪除/practice目錄
(3)文本內容管理命令
——cat:正向查看文本內容
格式:cat [OPTION]... [FILE]...
   -n:給顯示的文本行編號
   -E:顯示行結束符號$
示例:cat -n /etc/fstab --查看/etc/fatab內容並顯示行號
——tac:倒敘查看文本內容
格式:tac [OPTION]... [FILE]...
示例:tac /etc/passwd --倒敘查看文本內容
——head:顯示文本內容,預設顯示頭10行
格式:head [OPTION]... [FILE]...
   -n #:顯示文本頭#行內容
示例:head -5 /etc/passwd --顯示/etc/passwd文件頭5行內容
——tail:顯示文本內容,預設顯示後10行
格式:tail [OPTION]... [FILE]...
   -n #:顯示文本後#行內容
   -f:查看文件尾部內容結束後不退出,跟隨顯示新增的行
示例:tail -8 /etc/passwd --顯示/etc/passwd文件後8行內容
——more:分屏顯示文本內容,每次顯示一屏顯示完停止
格式:more [options] file [...]
   Space鍵:顯示文本下一屏內容
   Enter鍵:只顯示文本下一行內容
   b鍵:顯示文本上一屏內容
   q鍵:退出
——less:分屏顯示文本內容,不主動退出
格式:less [options] file [...]
   Space鍵:顯示文本下一屏內容
   Enter鍵:只顯示文本下一行內容
   b鍵:顯示文本上一屏內容
   q鍵:退出

2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

(1)bash命令執行後通過狀態返回值來確定執行結果:

  成功:返回0

  失敗:返回1-255

  註意,命令執行完成後,其狀態返回值保存於bash的特殊變數“$?”中。

  示例:

1 [root@bogon ~]# echo $?
2 0
3 [root@bogon ~]# lss /
4 bash: lss: 未找到命令...
5 相似命令是: 'ls'
6 [root@bogon ~]# echo $?
7 127

(2)bash命令行展開:

  ~:自動展開為當前用戶的家目錄

  ~USERNAME:自動展開為指定用戶的家目錄

  {}:{}內容可為一個用,隔開的路徑列表,將其展開為多個路徑

  示例:

1 [root@bogon ~]# cd ~walterhuang
2 [root@bogon walterhuang]# pwd
3 /home/walterhuang
4 [root@bogon walterhuang]# cd ~
5 [root@bogon ~]# pwd
6 /root
 1 [root@bogon data]# mkdir -pv {a,b}-{c,d}
 2 mkdir: 已創建目錄 "a-c"
 3 mkdir: 已創建目錄 "a-d"
 4 mkdir: 已創建目錄 "b-c"
 5 mkdir: 已創建目錄 "b-d"
 6 [root@bogon data]# tree /data
 7 /data
 8 ├── a-c
 9 ├── a-d
10 ├── b-c
11 └── b-d

3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

 1 [root@bogon data]# mkdir -pv /tmp/{a,b}_{c,d}
 2 mkdir: 已創建目錄 "/tmp/a_c"
 3 mkdir: 已創建目錄 "/tmp/a_d"
 4 mkdir: 已創建目錄 "/tmp/b_c"
 5 mkdir: 已創建目錄 "/tmp/b_d"
 6 [root@bogon data]# tree /tmp
 7 /tmp
 8 ├── a_c
 9 ├── a_d
10 ├── anaconda.log
11 ├── b_c
12 ├── b_d

(2)、創建/tmp/mylinux目錄下的:
mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│   └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│   ├── bin
│   └── sbin
└── var
├── lock
├── log
└── run

 1 [root@bogon data]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig,network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local,bin,sbin},var,lock,log,run}
 2 [root@bogon data]# tree /tmp/mylinux
 3 /tmp/mylinux
 4 ├── bin
 5 ├── boot
 6 │   └── grub
 7 ├── dev
 8 ├── etc
 9 │   ├── network-scripts
10 │   ├── rc.d
11 │   │   └── init.d
12 │   └── sysconfig
13 ├── lib
14 │   └── modules
15 ├── lib64
16 ├── lock
17 ├── log
18 ├── proc
19 ├── run
20 ├── sbin
21 ├── sys
22 ├── tmp
23 ├── usr
24 │   ├── bin
25 │   ├── local
26 │   └── sbin
27 └── var

4、文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。

(1)Linux文件的數據分為兩類,一類為數據,即文件的實際內容(數據本身);一類為元數據,用來描述文件的特征(描述數據的屬性)。

(2)通過 stat 命令可以查看文件的元數據,如圖:

  可以看到文件的元數據包括文件名(File)、大小(Size)、數據塊(Blocks)、IO塊(IO Block)、設備(Device)、節點號(Inode)、硬鏈接(Links)、許可權(Access)、文件所屬主(Uid)、文件所屬組(Gid)、最近訪問時間(Access Time)、最近文件修改時間(Modify Time)、最近文件屬性更改時間(Change Time)。

(3)通過 touch 命令修改文件的時間戳信息,其中:

  -c:指定的文件不存在時不予創建(所有時間都會改變);

  -a:僅修改access time(實際change time會隨著改變);

  -m:僅修改modify time(實際change time會隨著改變);

  -t:使用指定的日期時間,格式[[CC]YY]MMDDhhmm[.ss](access time和modify time為指定時間,change time為當前系統時間)

  示例:

 1 [root@bogon data]# stat a-c
 2   文件:"a-c"
 3   大小:6             塊:0          IO 塊:4096   目錄
 4 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
 5 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
 6 環境:unconfined_u:object_r:default_t:s0
 7 最近訪問:2018-03-01 10:51:30.172785209 +0800
 8 最近更改:2018-03-01 10:51:23.398752434 +0800
 9 最近改動:2018-03-01 10:51:23.398752434 +0800
10 創建時間:-
11 [root@bogon data]# touch -c a-c
12 [root@bogon data]# stat a-c
13   文件:"a-c"
14   大小:6             塊:0          IO 塊:4096   目錄
15 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
16 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
17 環境:unconfined_u:object_r:default_t:s0
18 最近訪問:2018-03-01 11:46:07.375982195 +0800
19 最近更改:2018-03-01 11:46:07.375982195 +0800
20 最近改動:2018-03-01 11:46:07.375982195 +0800
21 創建時間:-
 1 [root@bogon data]# stat a-c
 2   文件:"a-c"
 3   大小:6             塊:0          IO 塊:4096   目錄
 4 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
 5 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
 6 環境:unconfined_u:object_r:default_t:s0
 7 最近訪問:2018-03-01 11:46:07.375982195 +0800
 8 最近更改:2018-03-01 11:46:07.375982195 +0800
 9 最近改動:2018-03-01 11:46:07.375982195 +0800
10 創建時間:-
11 [root@bogon data]# touch -a a-c
12 [root@bogon data]# stat a-c
13   文件:"a-c"
14   大小:6             塊:0          IO 塊:4096   目錄
15 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
16 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
17 環境:unconfined_u:object_r:default_t:s0
18 最近訪問:2018-03-01 11:47:54.274485562 +0800
19 最近更改:2018-03-01 11:46:07.375982195 +0800
20 最近改動:2018-03-01 11:47:54.274485562 +0800
21 創建時間:-
 1 [root@bogon data]# stat a-c
 2   文件:"a-c"
 3   大小:6             塊:0          IO 塊:4096   目錄
 4 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
 5 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
 6 環境:unconfined_u:object_r:default_t:s0
 7 最近訪問:2018-03-01 11:47:54.274485562 +0800
 8 最近更改:2018-03-01 11:46:07.375982195 +0800
 9 最近改動:2018-03-01 11:47:54.274485562 +0800
10 創建時間:-
11 [root@bogon data]# touch -m a-c
12 [root@bogon data]# stat a-c
13   文件:"a-c"
14   大小:6             塊:0          IO 塊:4096   目錄
15 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
16 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
17 環境:unconfined_u:object_r:default_t:s0
18 最近訪問:2018-03-01 11:47:54.274485562 +0800
19 最近更改:2018-03-01 11:50:37.090253619 +0800
20 最近改動:2018-03-01 11:50:37.090253619 +0800
21 創建時間:-
 1 [root@bogon data]# touch -t 1705030503.53 a-c
 2 [root@bogon data]# stat a-c
 3 文件:"a-c"
 4 大小:6             塊:0          IO 塊:4096   目錄
 5 設備:fd00h/64768d    Inode:136910832   硬鏈接:2
 6 許可權:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
 7 環境:unconfined_u:object_r:default_t:s0
 8 最近訪問:2017-05-03 05:03:53.000000000 +0800
 9 最近更改:2017-05-03 05:03:53.000000000 +0800
10 最近改動:2018-03-01 11:50:37.090253619 +0800
11 創建時間:-

5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

(1)通過 alias 命令可以查看所有命令的別名或者定義別名,定義別名格式:alias NAME=COMMAND(定義的別名只對當前shell終端有效)。

  取消別名可通過命令 unalias。

  示例:

 1 [root@bogon data]# alias
 2 alias cp='cp -i'
 3 alias egrep='egrep --color=auto'
 4 alias fgrep='fgrep --color=auto'
 5 [root@bogon data]# alias copy='cp -ri'
 6 [root@bogon data]# alias
 7 alias copy='cp -ri'
 8 alias cp='cp -i'
 9 alias egrep='egrep --color=auto'
10 alias fgrep='fgrep --color=auto'
11 [root@bogon data]# unalias copy

(2)引用命令的執行結果可通過 $(COMMAND) 或者 `COMMAND` 兩種方式。

示例:

1 [root@bogon data]# echo $(date)
2 2018年 03月 01日 星期四 11:41:20 CST

6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字元)的文件或目錄。

[root@bogon data]# ls -d /var/l*[[:digit:]]*[[:lower:]]

7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

[root@bogon data]# ls -d /etc/[0-9]*[^0-9]
或
[root@bogon data]# ls -d /etc/[[:digit:]]*[^[:digit:]]

8、顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字元的文件或目錄。

[root@bogon data]# ls -d /etc/[^[:alpha:]][[:alpha:]]*

9、在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@bogon data]# touch /tmp/tfile-$(date '+%Y-%m-%d-%H-%M-%S')

10、複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

[root@bogon data]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1

11、複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

[root@bogon data]# cp -r /etc/*.d /tmp/mytest2

12、複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

[root@bogon data]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

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

-Advertisement-
Play Games
更多相關文章
  • 第一種最簡單,但沒有考慮線程安全,在多線程時可能會出問題,不過俺從沒看過出錯的現象,表鄙視我…… public class Singleton{ private static Singleton _instance = null; private Singleton(){} public stati ...
  • There is also a quick remedy for the emergency situation when your root partition runs out of disk space. There is a feature specific to ext3 and ext4 ...
  • 僅供自己學習使用 一、Makefile介紹 Makefile 或 makefile: 告訴make維護一個大型程式, 該做什麼。Makefile說明瞭組成程式的各模塊間的相互 關係及更新模塊時必須進行的動作, make按照這些說明自動地維護這些模塊。 執行make命令時,需要一個 Makefile  ...
  • 搭建ssr伺服器 首先,先說一下,為什麼這麼久沒寫博客。 一方面,最近在搭建自己的伺服器。挺忙的。 另一方面,寫了許多有關伺服器構建,網站構建的word。但沒有潤色,所以打算等自己伺服器做好了整理一下再發。 不過今天,我先來寫一個編程人員都要用到的東西--SSR 程式員總是有著許多東西要從外網下載, ...
  • 本專欄由“痞子衡隨筆”再次更名為“痞子衡嵌入式”,馬甲雖多,專註嵌入式技術領域的初衷不變,特此通知! ...
  • 前言 學習hadoop的時候難免需要部署一些子伺服器,但是如果在每檯子伺服器上面都去部署的話,那麼上千上萬台將會累垮你,所以這時候scp命令就顯得尤為重要了。 一、關於scp命令 1.1scp命令介紹 scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有c ...
  • 如果使用 mkimage 生成內核鏡像文件的話,會在內核的前頭加上了 64 bytes 的信息頭,供建立 tag 之用。bootm 命令會首先判斷 bootm xxx 這個指定的地址 xxx 與 a 指定的載入地址是否相同。 如果不同的話會從這個地址開始提取出這個 64 bytes 的頭部,對其進行 ...
  • 許可權認證 cookie VS token 我前公司的應用都是 token 授權的,現公司都是維護一個 session 確認登錄狀態的。那麼我在這掰扯掰扯這兩種許可權認證的方方面面。 工作流程 先說 cookie cookie 登錄是有狀態的,服務端維護一個 session 客戶端維護一個 cookie ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...