Linux常用檔案操作命令

谢友海發表於2024-07-13

本章將和大家分享Linux常用的檔案操作命令。廢話不多說,下面我們直接進入主題。

一、目錄切換(cd命令)

在Linux系統中,cd 是一個用於切換當前工作目錄的命令,它是 "change directory" 的縮寫。基本用法如下所示:

1、不帶引數

示例:cd 或 cd~

如果cd命令後沒有跟任何引數,它會將當前使用者的工作目錄切回到其主目錄(通常是/home/使用者名稱,但根據系統的不同,主目錄的路徑可能會有所不同)。

2、切換到其它使用者的主目錄

示例:cd ~username

切換到username使用者的主目錄,前提是你有許可權這麼做。

3、使用波浪線(~)表示主目錄

示例:cd ~/Documents

這會直接進入到當前使用者主目錄下的 Documents 目錄。

4、切換到特定目錄

示例:cd directory_name

這裡,directory_name 是你想要進入的目錄名,該目錄必須是當前目錄的子目錄。

5、指定目錄(絕對路徑)

示例:cd /root/myfolder/directory_name

從根目錄(/)開始的完整路徑,允許你直接透過提供完整的路徑來切換目錄,無論該目錄在檔案系統的什麼位置。

6、指定目錄(相對路徑)

示例:cd ../parent_directory

從當前工作目錄開始的路徑。

7、返回上一級目錄

示例:cd ..

使用 .. 表示當前目錄的上一級目錄。

8、切換到上一次所在的目錄

示例:cd -

cd -命令會將當前工作目錄切換到上一次所在的目錄。這在你需要在兩個目錄之間頻繁切換時特別有用。

9、直接進入多級目錄

示例:cd dir1/dir2/dir3

如果目錄結構允許,可以直接透過這種方式跳轉多級目錄。

10、中斷當前正在執行的命令或程式

示例:Ctrl C

Ctrl + C 命令用於中斷當前正在執行的命令列程式或程序。

11、列印工作目錄

示例:pwd

pwd是“Print Working Directory”的縮寫,意為“列印工作目錄”。這個命令的功能是顯示當前使用者所在的目錄路徑。

12、溫馨提示

  • 當輸入長目錄路徑時,可以使用 Tab 鍵自動補全路徑,提高效率。
  • 在複雜的目錄結構中,結合使用 ls 和 pwd 命令可以幫助更好地理解當前位置和決定下一步的導航方向。
  • 對於頻繁訪問的目錄,可以考慮設定別名(alias)來簡化命令。

二、Linux檔案和目錄簡單操作

1、檢視檔案

ls 命令用於列出當前目錄下的檔案和資料夾(也稱為目錄)。它可以顯示當前目錄下的檔案和資料夾,也可以顯示指定目錄下的內容。

基本語法

  • ls:不帶任何選項時,ls 會列出當前目錄中的檔案和目錄名稱,按字母順序排序。

常用選項

  • -l(長格式):以長格式顯示檔案和目錄的詳細資訊,包括許可權、所有者、大小、修改日期等。
  • -a(全顯):顯示包括以點(.)開頭的隱藏檔案在內的所有檔案和目錄。
  • -h(人性化大小):在顯示檔案大小時,使用 KB、MB、GB 等易於閱讀的單位。
  • -R(遞迴):遞迴列出目錄及其子目錄下的所有內容。
  • -t(按時間排序):按照修改時間的先後順序列出檔案和目錄,最新的排在最前面。
  • -S(按大小排序):按照檔案大小排序,從大到小。

組合使用示例

  • ls -l:會以長格式(long format)列出目錄的內容,顯示更詳細的檔案或目錄資訊。
  • ll:ls -l 在 Linux 系統中可以簡寫為 ll ,但是需要注意的是有些場景是不適用的,例如:進入到 Docker 容器內部的時候就不支援 ll 簡寫,只能使用 ls -l 命令。
  • ls -a:這個選項會列出所有檔案和目錄,包括以.開頭的隱藏檔案和.(當前目錄)及..(父目錄)。
  • ls -A:這個選項也會列出所有檔案和目錄,但它不會列出.(當前目錄)和..(父目錄)。
  • ls -al:列出包括隱藏檔案在內的所有檔案和目錄的詳細資訊。
  • ls -lh:以人性化大小單位顯示當前目錄下檔案和目錄的詳細資訊。
  • ls -lt:按修改時間倒序列出當前目錄下的檔案和目錄。
  • ls -R:遞迴列出當前目錄及其子目錄下的所有檔案和目錄。
  • ls -lah:以長格式列出包括隱藏檔案在內的所有檔案和目錄,並使用人性化大小單位。
  • ls -r:將檔案以相反次序顯示(原定依英文字母次序)
  • ls -t:將檔案依建立時間之先後次序列出
  • ls -F:選項用於在列出的每個檔案或目錄名後附加一個指示符,以區分不同型別的條目。這些指示符有助於使用者快速識別目錄、可執行檔案、符號連結等。
  • 顯示指定目錄下的內容示例:ls -l root/myfolder/

2、建立檔案

mkdir 是用於建立目錄(資料夾)的命令。例如:mkdir 目錄路徑/目錄名。

touch 用於建立普通檔案。例如:touch 檔案路徑/檔名。其中檔案路徑可以是相對路徑也可以是絕對路徑。

3、刪除檔案

刪除普通檔案:rm + 檔案路徑/檔名。示例:rm test.txt

刪除空目錄:rmdir + 目錄路徑/目錄名。示例:rmdir mytest

刪除空目錄也可以使用:rm -r +目錄路徑/目錄名(-r 是rm的引數)。示例:rm -r ./mytest

刪除非空目錄:rm -rf +目錄路徑/目錄名。示例:rm -rf ./myfolder/mytest/(PS:輸入目錄路徑時此處的 ./ 建議保留,以免不小心誤刪除別的檔案。)(-f 是rm的引數,表示忽略確認提示。)

4、複製檔案或目錄(cp命令)

cp命令是Linux系統中檔案操作的重要工具,透過不同的選項,它可以靈活地用於各種檔案和目錄的複製任務。

命令格式

  • cp [選項] 原始檔 目標檔案 或 cp [選項] -t 目錄 原始檔...

常用選項

  • -a:此選項通常在複製目錄時使用,它保留連結、檔案屬性,並複製目錄下的所有內容。其作用等於-dpR引數組合。
  • -d:當複製符號連線時,把目標檔案或目錄也建立為符號連線,並指向與原始檔或目錄連線的原始檔案或目錄。
  • -f:強行復制檔案或目錄,不論目標檔案或目錄是否已存在,且不給出提示。
  • -i:在覆蓋目標檔案之前給出提示,要求使用者確認是否覆蓋。
  • -p:除複製檔案的內容外,還把修改時間和訪問許可權等屬性也複製到新檔案中。
  • -r 或 -R:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理。
  • -s:對原始檔建立符號連線,而非複製檔案。
  • -u:僅當原始檔比目標檔案新,或者目標檔案不存在時,才複製檔案。
  • -v:詳細顯示命令執行的操作。
  • -l:不復制檔案,只是生成連結檔案,類似於快捷方式。
  • -b:覆蓋已存在的檔案目標前將目標檔案備份。
  • -S:在備份檔案時,用指定的字尾“SUFFIX”代替檔案的預設字尾。

示例

  • 複製單個檔案:cp source.txt destination.txt
  • 複製目錄及其所有內容:cp -r source_dir destination_dir
  • 保留檔案屬性複製:cp -p file1.txt file2.txt
  • 遞迴複製目錄並保留屬性:cp -ar source_dir destination_dir
  • 建立符號連結而非複製檔案:cp -s source.txt link.txt
  • 複製多個檔案到指定目錄:cp file1.txt file2.txt -t target_dir
  • 複製某個目錄下所有的檔案到其它目錄:cp rumenz/* /tmp
  • 指定備份字尾:cp -b --suffix=.bak source.txt destination.txt 或 cp -b -S.bak source.txt destination.txt

注意事項

  • 當一次複製多個檔案時,目標檔案引數必須是一個已經存在的目錄,否則將出現錯誤。
  • 使用cp命令複製目錄時,必須使用-r或-R引數。
  • 在使用cp命令時,要特別注意檔案覆蓋的問題,特別是當目標檔案已存在時。

5、移動或重新命名檔案和目錄(mv命令)

mv 命令在 Linux 系統中用於移動或重新命名檔案和目錄。它是非常基礎且常用的命令之一,對於管理檔案和目錄結構至關重要。

基本語法

  • mv [選項] 原始檔或目錄 目標檔案或目錄

常用選項

  • -i:在覆蓋檔案之前提示使用者確認。
  • -u:當原始檔比目標檔案新,或者目標檔案不存在時,才進行移動或重新命名。
  • -v:顯示詳細的處理過程資訊。
  • -n:不要覆蓋任何已存在的檔案或目錄。
  • -f:強制覆蓋目標檔案或目錄,不進行任何提示。
  • -b:在覆蓋前為檔案建立備份,備份檔案通常會在原檔名後加上波浪線(~)或者根據--suffix指定的字尾。
  • -t:指定目標目錄,當移動多個檔案到一個目錄時很有用。

示例

1)移動檔案

將檔案 example.txt 從當前目錄移動到 /tmp 目錄:

示例:mv example.txt /tmp

2)重新命名檔案

將檔案 oldname.txt 重新命名為 newname.txt:

示例:mv oldname.txt newname.txt

注意,這裡沒有指定目標目錄,因為重新命名操作是在同一目錄下進行的。

3)移動多個檔案

將多個檔案(file1.txt、file2.txt)移動到 /tmp 目錄:

示例:mv file1.txt file2.txt /tmp 或 mv file1.txt file2.txt -t /tmp

或者,你也可以使用萬用字元來匹配多個檔案:

示例:mv file*.txt /tmp

4)移動目錄

將目錄 mydir 移動到 /home/username/newdir(假設 /home/username/newdir 已經存在):

示例:mv mydir /home/username/newdir

注意,如果目標路徑不存在且命令試圖將一個目錄移動到這個路徑,它通常會失敗(除非使用了 -t 選項,這在某些版本的 mv 中可用,但並非所有系統都支援)。

5)使用 -i 選項進行覆蓋前的確認

在覆蓋檔案之前,提示使用者確認:

示例:mv -i source.txt target.txt

如果 target.txt 已經存在,系統會詢問你是否要覆蓋它。

6)移動並建立備份

示例:mv -b -S.bak source.txt destination.txt (其中 -S.bak 表示設定備份檔案的字尾為“.bak”,預設字尾為“~”)

注意事項

  • 使用 mv 命令時要小心,因為一旦檔案或目錄被移動或重新命名,原始的引用或路徑就可能失效。
  • 如果目標目錄不存在且沒有使用 -t 選項(如果可用),mv 命令可能會將源目錄重新命名為目標名稱,而不是將其內容移動到新位置。
  • 在處理重要檔案時,建議先備份,以防萬一發生意外。
  • 當移動操作涉及到刪除原始檔或目錄時,請謹慎操作,一旦執行,沒有回收站可以恢復。

三、Linux壓縮/解壓檔案操作

1、zip

壓縮檔案

將testA.txt和testB.txt壓縮成一個zip包:zip test.zip testA.txt testB.txt

將所有.jpg的檔案壓縮成一個zip包:zip test.zip *.jpg

壓縮目錄

將資料夾test壓縮成一個zip包:zip -r test.zip ./test

解壓縮

將test.zip中的所有檔案解壓出來:unzip test.zip

將當前目錄下面的mydata.zip解壓到mydatabak目錄裡面:unzip mydata.zip -d ./mydatabak

2、rar

rar安裝

CentOS預設沒有安裝 rar 軟體,需要我們手動安裝。

1)首先,我們需要先安裝一下 gcc 編譯器

命令:yum install gcc

可以發現它預設已經安裝好了。

2)接著,下載 Linux 版本的 rar 軟體安裝包

命令:wget https://www.rarlab.com/rar/rarlinux-x64-6.0.2.tar.gz

如果wget的地址失效,可到rar官網下載:https://www.rarlab.com/download.htm

3)然後,將下載好的 rarlinux-x64-6.0.2.tar.gz 這個壓縮包解壓出來

命令:tar -zxvf rarlinux-x64-6.0.2.tar.gz

4)最後,進入解壓出來的 rar 資料夾,並使用 make 命令進行編譯

可以發現它很小,很快就編譯好了。

5)檢查是否安裝成功

命令:rar

如果安裝成功,則執行此命令時會顯示出RAR的幫助資訊。

至此我們的 rar 軟體就算安裝好了。

總結:

yum install gcc  //安裝gcc編譯器
wget https://www.rarlab.com/rar/rarlinux-x64-6.0.2.tar.gz  //下載安裝包
tar -zxvf rarlinux-x64-6.0.2.tar.gz  //解壓
cd rar  //進入到剛解壓出來的rar資料夾
make  //編譯
rar  //檢查是否安裝成功

壓縮檔案

命令1:rar a test.rar test1.txt test2.txt

這條命令是將test1.txt和test2.txt壓縮成一個rar包

命令2:rar a test.rar ./*.txt

這條命令是將當前目錄下所有.txt的檔案壓縮成一個rar包

壓縮目錄

命令:rar a test.rar test

這條命令是將資料夾test壓縮成一個rar包

解壓縮

命令1:unrar e test.rar

這條命令是將test.rar中的所有檔案解壓到當前目錄

命令2:unrar e test.rar -w ./mydir

這條命令是將test.rar解壓到指定目錄

3、tar

引數說明

  • --help:檢視幫助資訊
  • -z:透過 gzip 過濾歸檔(gz壓縮)
  • -c:建立一個新歸檔(壓縮)
  • C:大寫的C,改變至目錄DIR(指定目錄)
  • -x:從歸檔中解出檔案(解壓)
  • -v:詳細地列出處理的檔案
  • -f:指定歸檔檔案或 ARCHIVE 裝置
  • -a:使用歸檔字尾名來決定壓縮程式
  • -t:列出歸檔內容

壓縮檔案或目錄

示例1:tar -cf test.tar test1.txt test2.txt (壓縮指定檔案)

示例2:tar -cf mydir.tar ./mydir (壓縮目錄)

詳細列出壓縮包的所有檔案

示例:tar -tvf test.tar

解壓縮

示例1:tar -xf test.tar (解壓到當前目錄)

示例2:tar -xf test.tar -C ./mydir (解壓到指定目錄)

4、tar.gz

壓縮檔案或目錄

語法:tar -zcf 壓縮包名稱 需要壓縮的檔案或目錄

示例1:tar -zcf test.tar.gz test1.txt test2.txt (壓縮指定檔案)

示例2:tar -zcf mydir.tar.gz ./mydir (壓縮目錄)

解壓縮

示例1:tar -zxf test.tar.gz (解壓到當前目錄)

示例2:tar -zxf test.tar.gz -C ./mydir (解壓到指定目錄)

5、xz

xz只能壓縮檔案,不能壓縮目錄(資料夾),可對 .tar 或 .zip 等壓縮檔案進行二次壓縮。

壓縮檔案

語法:xz -z 要壓縮的檔案

如果要保留被壓縮的檔案加上引數 -k ,如果要設定壓縮率加上引數 -0 到 -9調節壓縮率,如果不設定,預設壓縮等級是6。

示例:xz -z -k -9 test.zip

壓縮成功後就會多出一個 test.zip.xz 的壓縮檔案。

解壓縮

語法:xz -d 要解壓的檔案

使用 -k 引數可保留被解壓縮的檔案。

示例1:xz -d test.zip.xz

示例2:xz -d -k test.zip.xz (保留被解壓縮的檔案)

6、tar.xz

.tar.xz檔案是首先使用tar命令將多個檔案或目錄打包成一個.tar檔案,然後再使用xz壓縮演算法對這個.tar檔案進行壓縮得到的檔案。

壓縮檔案

示例:xz -z -k test.tar

壓縮成功後就會多出一個 test.tar.xz 的壓縮檔案。

解壓縮

示例1:xz -d test.tar.xz

示例2:xz -d -k test.tar.xz (保留被解壓縮的檔案)

7、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

8、bz(不常用)

解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知
.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知

9、Z(不常用)

解壓:uncompress FileName.Z
壓縮:compress FileName
.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName

此文由博主精心撰寫轉載請保留此原文連結:https://www.cnblogs.com/xyh9039/p/18278973

版權宣告:如有雷同純屬巧合,如有侵權請及時聯絡本人修改,謝謝!!!

相關文章