主頁 > 軟體設計 > linux下目錄(檔案夾)及檔案的常用操作命令匯總

linux下目錄(檔案夾)及檔案的常用操作命令匯總

2021-04-29 14:04:37 軟體設計

linux下對目錄及檔案的常用操作命令匯總

一、對目錄的操作

1、查看當前目錄

pwd  查詢當前所在完整目錄
cd   進入某個檔案夾 
常用命令:cd - 回傳到上一次作業的目錄
ll 類似于于 ls -l,查詢目錄下的檔案,列出檔案詳細資訊;
常用命令:ll -a  列出目錄下的所有檔案,包括以 . 開頭的隱藏檔案,

2、新建目錄

mkdir 創建目錄;
mkdir a  創建名稱為a的檔案夾
mkdir b/c  檔案夾b不存在,創建失敗
mkdir -p b/c  創建檔案夾b及子檔案夾c 

3、洗掉目錄

rmdir 洗掉一個空目錄
rmdir -p 洗掉指定目錄后,若該目錄的上層目錄已變成空目錄,則其一并洗掉
rm -rf  代表洗掉一個檔案夾及其檔案夾下的所有檔案

二、對檔案的操作

1、查找檔案

locate命令:locate指令和find找尋檔案的功能類似,但locate是透過update程式將硬碟中的所有檔案和目錄資料先建立一個
索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由作業系統管理,但也可以直接下達
update強迫系統立即修改索引資料庫,
locate /etc/sh  搜索etc目錄下所有以sh開頭的檔案
locate \*.log 查找后綴為.log的檔案
find命令:實時查找,速度慢可能只搜索用戶具備讀取和執行權限的目錄,用來在指定目錄下查找檔案,
find . -name "*.c"  將當前目錄及其子目錄下所有檔案后綴為 .c 的檔案列出來
find . -type f  將目前目錄其其下子目錄中所有一般檔案列出

2、查看檔案內容
(1)more——分頁顯示檔案內容

more指令會以一頁一頁的形式顯示檔案內容,按空白鍵(space)顯示下一頁內容,按Enter鍵會顯示下一行內容,按 b 鍵就會往回(back)一頁顯示,其基本用法如下:
more    file1             查看檔案file1的檔案內容;
more   -num   file1    查看檔案file1的內容,一次顯示num行;
more   +num   file1   查看檔案file1的內容,從第num行開始顯示;

(2)less——向前或向后查看檔案內容

less   file1    查看檔案file1的內容;
less   -m    file2     查看檔案file2的內容,并在螢屏底部顯示已顯示內容的百分比;
按空格鍵顯示下一屏的內容,按回車鍵顯示下一行的內容; 
按 U向前滾動半頁,按 Y 向前滾動一行;
按[PageDown]向下翻動一頁,按[PageUp]向上翻動一頁;

(3)head——查看檔案開頭內容

head  -n  <行數>   filename      顯示檔案內容的前n行;默認10行
例如:head   -n   5   file1     顯示檔案file1的前5行內容
head   -c  <位元組>    filename      顯示檔案內容的前n個位元組;
例如:head  -c  20  file2      顯示檔案file2的前20個位元組內容
head -20 filename       顯示檔案內容的前20行;

(4)tail——查看檔案結尾內容
-n :后面接數字,代表顯示幾行的意思
-f :表示持續偵測后面所接的檔名,要等到按下[ctrl]-c才會結束tail的偵測

tail    file1      顯示檔案file1的尾部10行內容;
tail  -n  <行數>  filename    顯示檔案尾部的n行內容;
例如:tail  -n  5   file1    顯示檔案file1的末尾5行內容
tail  -c  <位元組數>   filename     顯示檔案尾部的n個位元組內容;
例如:tail  -c  20   file2    顯示檔案file2的末尾20個位元組
head -20f filename       顯示檔案內容的最后20行,且持續觀察下去;

(5)cat——顯示檔案內容

cat   file1        用于查看檔案名為file1的檔案內容;
cat   -n   file2       查看檔案名為file2的檔案內容,并從1開始對所有輸出的行數(包括空行)進行編號;
cat   -b   file3      查看檔案名為file3的檔案內容,并從1開始對所有的非空行進行編號;

(6)tac——倒著顯示檔案內容
檔案內容從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫

tac file1   用于查看檔案名為file1的檔案內容;

(7)nl——顯示行號查看檔案內容

nl file1   用于查看檔案名為file1的檔案內容;

(8)grep命令
grep 指令用于查找內容包含指定的范本樣式的檔案,如果發現某檔案的內容符合所指定的范本樣式,預設 grep 指令會把含有范本樣式的那一列顯示出來

 grep test test* #查找前綴有“test”的檔案包含“test”字串的檔案  
 grep -v test *test*  #查找檔案名中包含test 的檔案中不包含test 的行  

3、新增檔案
(1)touch

touch aa.text 創建一個檔案
touch test1.txt test2.txt 同時創建兩個檔案
touch test{0001..2000}.txt  批量創建檔案(如創建2000個檔案)
touch aa.ini  更改檔案 aa.ini時間為當前時間(aa.ini已存在)

(2)vi和vim(vi和vim都是Linux中的編輯器,不同的是vim比較高級,可以視為vi的升級版本)

vi test.txt
vim test.txt

(3)使用>和>>

> a.text 直接用>創建空檔案
>> a.text 直接用>>創建空檔案
ls > a.text 創建并將結果寫入檔案(覆寫原檔案內容)
ls >> a.text 創建并將結果寫入檔案(不覆寫原檔案內容,在后面新增)
>和>>可以搭配很多命令使用,可以理解為將其它命令的結果寫入檔案

(4)copy

復制檔案test.txt到/a/b目錄
cp test.txt /a/b
復制檔案夾 c到/usr/local目錄
cp -r c/ /a/b
再次復制檔案test.txt到/usr/local目錄,強制覆寫
cp -f test.txt /a/b
再次復制檔案test.txt到/usr/local目錄,詢問是否強制覆寫
cp -i test.txt /a/b
復制檔案tests.txt到/a/b目錄,并把修改時間和訪問權限也復制
cp -p test.txt /a/b

(5)cat

cat > test.text
cat >> test.text
用的也是 > 和 >> ,敲完上述命令會進入檔案的編輯模式,可以直接輸入你想要寫入的內容,最后按ctrl+z退出編輯模式自動保存

cat+eof/exit

cat >> test.text<<eof
ccccccccccccccccccccccc
eof
eof可以作為一個分界符,遇到下一個分界符時停止輸入;exit也一樣,大小寫一樣,

3、修改檔案
(1)修改檔案名

rename filename1 refilename1 filename1 修改filename1名稱(可用于批量修改)
mv abc.txt 1234.txt 可用于檔案夾

(2)修改檔案內容(vi、vim、sed)

使用 vi/vim 進入一般模式
按下 i 進入輸入模式(也稱為編輯模式),開始編輯文字
按下 ESC 按鈕回到一般模式
在一般模式中按下 :wq 儲存后離開

詳細請參考:https://ipcmen.com/vi-vim
sed請參考:https://www.runoob.com/linux/linux-comm-sed.html
4、洗掉檔案

rm
-r 就是向下遞回,不管有多少級目錄,一并洗掉
-f 就是直接強行洗掉,不作任何提示的意思

三、檔案或檔案夾權限
1、更改檔案/檔案夾所屬用戶組

chgrp
-h :只對于鏈接進行變更,而非該鏈接真正指向的檔案
-R :對當前目錄下的所有檔案與子目錄進行相同的所有者變更
chgrp users test.txt  修改 test.txt 的所屬群組為users

2、更改檔案、檔案夾所屬用戶

chown
-h :只對于鏈接進行變更,而非該鏈接真正指向的檔案
-R :對當前目錄下的所有檔案與子目錄進行相同的所有者變更
chown zheng:users test.txt 修改 test.txt 的所屬用戶為zheng,所屬群組為users

3、更改檔案、檔案夾權限
檔案權限:
在這里插入圖片描述
r 讀權限read 4
w 寫權限write 2
x 操作權限execute 1
-對應數值0

chmod
-R :對當前目錄下的所有檔案與子目錄進行相同的所有者變更
chmod 777 test.txt 
chmod o w xxx.xxx

u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
數字相加法:
-rwx------:等于數字表示700,
-rwxr—r–:等于數字表示744,
-rw-rw-r-x:等于數字表示665,
drwx—x—x:等于數字表示711,
drwx------:等于數字表示700,

四、檔案的壓縮

tar
  解包:tar zxvf filename.tar
  打包:tar czvf filename.tar dirname
gz命令
  解壓1:gunzip filename.gz
  解壓2:gzip -d filename.gz
  壓縮:gzip filename
      .tar.gz 和  .tgz
      解壓:tar zxvf filename.tar.gz
      壓縮:tar zcvf filename.tar.gz dirname
      壓縮多個檔案:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
  解壓1:bzip2 -d filename.bz2
  解壓2:bunzip2 filename.bz2
  壓縮:bzip2 -z filename
        .tar.bz2
       解壓:tar jxvf filename.tar.bz2
       壓縮:tar jcvf filename.tar.bz2 dirname
bz命令
    解壓1:bzip2 -d filename.bz
    解壓2:bunzip2 filename.bz
         .tar.bz
       解壓:tar jxvf filename.tar.bz
z命令
    解壓:uncompress filename.z
    壓縮:compress filename
        .tar.z
          解壓:tar zxvf filename.tar.z
          壓縮:tar zcvf filename.tar.z dirname
zip命令
    解壓:unzip filename.zip
    壓縮:zip filename.zip dirname

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/281302.html

標籤:其他

上一篇:Android jetpack最佳總結和實踐

下一篇:Vue全家桶:Vuex

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more