Linux 基礎-文件及目錄管理

来源:https://www.cnblogs.com/armcvai/archive/2022/12/02/16945256.html
-Advertisement-
Play Games

在 Linux 中一切皆文件。文件管理主要是涉及文件/目錄的創建、刪除、移動、複製和查詢,有mkdir/rm/mv/cp/find 等命令。其中 find 文件查詢命令較為複雜,參數豐富,功能十分強大;查看文件內容是一個比較大的話題,文本處理也有很多工具供我們使用,本文涉及到這兩部分的內容只是點到為... ...


本文大部分內容參看 《Linux基礎》一書,根據自己的工程經驗和理解加以修改、拓展和優化形成了本篇博客,不適合 Linux 純小白,適合有一定基礎的開發者閱讀。

一,概述

在 Linux 中一切皆文件。文件管理主要是涉及文件/目錄的創建、刪除、移動、複製和查詢,有mkdir/rm/mv/cp/find 等命令。其中 find 文件查詢命令較為複雜,參數豐富,功能十分強大;查看文件內容是一個比較大的話題,文本處理也有很多工具供我們使用,本文涉及到這兩部分的內容只是點到為止,沒有詳細講解。另外給文件創建一個別名,我們需要用到 ln,使用這個別名和使用原文件是相同的效果。

二,文件及目錄常見操作

2.1,創建、刪除、移動和複製

創建和刪除命令的常用用法如下:

  • 創建目錄:mkdir
  • 刪除文件:rm file(刪除目錄 rm -r)
  • 移動指定文件到目標目錄中:mv source_file(文件) dest_directory(目錄)
  • 複製:cp(複製目錄 cp -r)

這些命令的常用和複雜例子程式如下

$ find ./ | wc -l  # 查看當前目錄下所有文件個數(包括子目錄)
14995
$ cp –r test/ newtest   # 使用指令 cp 將當前目錄 test/ 下的所有文件複製到新目錄 newtest 下
$ mv test.txt demo.txt  # 將文件 test.txt 改名為 demo.txt

2.2,目錄切換

  • 切換到上一個工作目錄: cd -
  • 切換到 home 目錄: cd or cd ~
  • 顯示當前路徑: pwd
  • 更改當前工作路徑為 path: $ cd path

2.3,列出目錄內容

  • 顯示當前目錄下的文件及文件屬性ls
  • 按時間排序,以列表的方式顯示目錄項:ls -lrt

ls 命令部分參數解釋如下:

  • -a:顯示所有文件及目錄 (. 開頭的隱藏文件也會列出)
  • -l:除文件名稱外,亦將文件型態、許可權、擁有者、文件大小等資訊詳細列出
  • -r:將文件以相反次序顯示(原定依英文字母次序)
  • -t: 將文件依建立時間之先後次序列出

常用例子如下:

$ pwd
/
$ ls -al  # 列出根目錄下所有的文件及文件類型、大小等資訊
total 104
drwxr-xr-x   1 root root 4096 Dec 24 01:24 .
drwxr-xr-x   1 root root 4096 Dec 24 01:24 ..
drwxrwxrwx  11 1019 1002 4096 Jan 13 09:34 data
drwxr-xr-x  15 root root 4600 Dec 24 01:24 dev
drwxr-xr-x   1 root root 4096 Jan  8 03:15 etc
drwxr-xr-x   1 root root 4096 Jan 11 05:49 home
drwxr-xr-x   1 root root 4096 Dec 23 01:15 lib
drwxr-xr-x   2 root root 4096 Dec 23 01:15 lib32
... 省略

2.4,查找目錄或者文件 find/locate

1,查找文件或目錄

$ find ./ -name "cali_bin*" | xargs file  # 查找當前目錄下文件名含有 cali_bin 字元串的文件
./classifynet_calib_set/cali_bin.txt: ASCII text
./calib_set/cali_bin.txt:             ASCII text
./cali_bin.txt:                       ASCII text

2,查找目標文件夾中是否含有 obj 文件:

$ find ./ -name '*.o'

find 是實時查找,如果需要更快的查詢,可試試 locate;locate 會為文件系統建立索引資料庫,如果有文件更新,需要定期執行更新命令來更新索引庫。

$ locate string  # 尋找包含有 string 的路徑

2.5,查看及搜索文件內容

1,查看文件內容命令:cat vi head tail more

$ cat -n  # 顯示時同時顯示行號 
$ ls -al | more  # 按頁顯示列表內容
$ head -1 filename  # 顯示文件內容第一行
$ diff file1 file1  # 比較兩個文件間的差別

2,使用 egrep 查詢文件內容:

$ egrep "ls" log.txt  # 查找 log.txt 文件中包含 ls 字元串的行內容
-rw-r--r--   1 root root       2009 Jan 13 06:56 ls.txt

三,總結

利用 ls -al 命令查看文件屬性及許可權,已知了 Linux 系統內文件的三種身份(文件擁有者、文件所屬群組與其他用戶),每種身份都有四種許可權(rwxs)。可以使用 chown, chgrp, chmod 去修改這些許可權與屬性。文件是實際含有數據的地方,包括一般文本文件、資料庫內容文件、二進位可執行文件(binary program)等等。

  • 文件管理,目錄的創建、刪除、查詢、管理: mkdir rm mv cp
  • 文件的查詢和檢索命令: find locate
  • 查看文件內容命令:cat vi tail more
  • 管道和重定向命令: ; | && >

四,參考資料

《Linux基礎》


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

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接 [https://www.cnblogs.com/densen2014/p/16964858.html] 在Blazor項目嵌入 pdf.js 時不能正確顯示中文,瀏覽器F12顯示如下錯誤 錯誤 l10n.js /web/locale/locale.properties not found ...
  • 當我們編寫了自己的C#程式,有程式自定義的文件類型時,通常希望它滿足以下需求:雙擊自定義文件打開自定義程式、自定義文件有著自己的圖標 此時,在網上檢索可以發現,大多數回答是使用Microsoft.Win32下的CreateSubKey(String)函數,但是很不幸,Win10的註冊表項受訪問控制列... ...
  • .NET 6 使用 MagicOnion MagicOnion開源地址:https://github.com/Cysharp/MagicOnion 什麼是MagicOnion? MagicOnion 是用於 .NET 平臺的現代 RPC 框架,它提供雙向實時通信(如SignalR和Socket.io ...
  • 一、需求描述 由於WTM預設只支持查詢關係型資料庫,但實際生產過程中,我們的數據可能會存在時序資料庫。 WTM LayUI的架構下,實現通過查詢InfluxDB時序資料庫數據,並將數據放到DataTable中。 二、解決思路 通過Influx語法,將數據查詢出來放到List的容器中,然後再在GetS ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家講的是國內外串列NOR Flash廠商官網Cross Reference功能。 串列 NOR Flash 是一個相對發展穩定的市場,目前全球市場約 90% 的份額被中國的三家廠商(Winbond華邦/MXIC旺巨集/GigaDevice兆易創新) ...
  • ​ 摘要:本文主要歸納總結藍牙模塊的不同工作模式,通過藍牙模塊不同的工作模式瞭解其扮演不同角色時工作的一個基本原理,為更深入的研究藍牙模塊底層的工作機制和技術方案進行鋪墊。 1、主設備工作模式 主設備是能夠搜索別人並主動建立連接的一方,從掃描狀態轉化而來的。其可以和一個或多個從設備進行連接通信,它會 ...
  • Valheim伺服器 Mod修改安裝 註意! **不建議在為通關游戲的情況下對游戲進行任何修改,這會極大的縮短游戲的新鮮度,不建議安裝任何mod及修改器** mod的安裝將直接影響你的游戲體驗 伺服器安裝mod還需要參與伺服器的玩家一併安裝mod文件 本mod非往游戲中添加游戲元素,只是在原有的基礎 ...
  • 一、SSL認證 也就是我們常說的伺服器認證,為的是啟動加密傳輸協議https,步驟如下: 1、生成證書請求 進入IIS,選擇伺服器的伺服器證書設置選項, 創建證書申請,填值如圖所示 選擇加密服務提供程式,並設置證書密鑰長度,EV證書需選擇位長2048 完成之後,會保留一條請求記錄,如圖 生成的證書請 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...