Linux對文件夾操作(複製,移動)

来源:https://www.cnblogs.com/Mr-lil/archive/2023/07/27/17585022.html
-Advertisement-
Play Games

# 一、複製文件夾cp ``` cp -a vue vue-copy ``` 將vue 文件夾下麵的所有文件,複製到同目錄下vue-copy文件夾下麵 ![image](https://img2023.cnblogs.com/blog/3202319/202307/3202319-202307271 ...


一、複製文件夾cp

cp -a vue vue-copy

將vue 文件夾下麵的所有文件,複製到同目錄下vue-copy文件夾下麵
image

  • -a:相當於 -d、-p、-r 選項的集合,這幾個選項我們一一介紹;
  • -d:如果源文件為軟鏈接(對硬鏈接無效),則複製出的目標文件也為軟鏈接;
  • -i:詢問,如果目標文件已經存在,則會詢問是否覆蓋;
  • -l:把目標文件建立為源文件的硬鏈接文件,而不是複製源文件;
  • -s:把目標文件建立為源文件的軟鏈接文件,而不是複製源文件;
  • -p:複製後目標文件保留源文件的屬性(包括所有者、所屬組、許可權和時間);
  • -r:遞歸複製,用於複製目錄;
  • -u:若目標文件比源文件有差異,則使用該選項可以更新目標文件,此選項可用於對文件的升級和備用。

1、cp 命令基本用法

cp 命令既可以複製文件,也可以複製目錄。我們先來看看如何複製文件,例如:

[root@localhost ~]# touch cangls
#建立源文件
[root@localhost ~]# cp cangls /tmp/
#把源文件不改名複製到 /tmp/ 目錄下

如果需要改名複製,則命令如下:

[root@localhost ~]# cp cangls /tmp/bols
#改名複製

如果複製的目標位置已經存在同名的文件,則會提示是否覆蓋,因為 cp 命令預設執行的是“cp -i”的別名,例如:

[root@localhost ~]# cp cangls /tmp/
cp:是否覆蓋"/tmp/cangls"?y
#目標位置有同名文件,所以會提示是否覆蓋

接下來我們看看如何複製目錄,其實複製目錄只需使用“-r”選項即可,例如:

[root@localhost ~]# mkdir movie
#建立測試目錄
[root@localhost ~]# cp -r /root/movie/ /tmp/
#目錄原名複製

二、移動文件夾mv

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

移動之後,源文件會被刪除,類似剪切

mv a.txt dist 

移動a.txt文件到dist文件夾下麵

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

【例 1】移動文件或目錄。

[root@localhost ~]# mv cangls /tmp
#移動之後,源文件會被刪除,類似剪切
[root@localhost ~]# mkdir movie
[root@localhost ~]# mv movie/ /tmp
#也可以移動目錄。和 rm、cp 不同的是,mv 移動目錄不需要加入 "-r" 選項

如果移動的目標位置已經存在同名的文件,則同樣會提示是否覆蓋,因為 mv 命令預設執行的也是 “mv -i” 的別名,例如:

[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv cangls /tmp
mv:是否覆蓋"tmp/cangls"?y
#由於 /tmp 目錄下已經存在 cangls 文件,所以會提示是否覆蓋,需要手工輸入 y 覆蓋移動

【例 2】強制移動。
之前說過,如果目標目錄下已經存在同名文件,則會提示是否覆蓋,需要手工確認。這時如果移動的同名文件較多,則需要一個一個文件進行確認,很不方便。

如果我們確認需要覆蓋已經存在的同名文件,則可以使用 “-f” 選項進行強制移動,這就不再需要用戶手工確認了。例如:

[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv -f cangls /tmp
#就算 /tmp/ 目錄下已經存在同名的文件,由於"-f"選項的作用,所以會強制覆蓋

【例 3】不覆蓋移動。
既然可以強制覆蓋移動,那也有可能需要不覆蓋的移動。如果需要移動幾百個同名文件,但是不想覆蓋,這時就需要 “-n” 選項的幫助了。例如:

[root@localhost ~]# ls /tmp
/tmp/bols /tmp/cangls
#在/tmp/目錄下已經存在bols、cangls文件了
[root@localhost ~]# mv -vn bols cangls lmls /tmp/、
"lmls"->"/tmp/lmls"
#再向 /tmp/ 目錄中移動同名文件,如果使用了 "-n" 選項,則可以看到只移動了 lmls,而同名的 bols 和 cangls 並沒有移動("-v" 選項用於顯示移動過程)

三、修改文件的名稱mv

mv a.txt b.txt

將a.txt 的文件名修改為b.txt的文件名, 裡面的內容不會修改


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

-Advertisement-
Play Games
更多相關文章
  • 在 `pandas` 中,如果遇到數據量特別大的情況,隨機挑選 DataFrame 的子集可以幫助我們更深入地瞭解數據,從而更好地進行數據分析和決策。 隨機挑選子集的用途主要有: 1. 評估數據質量:隨機挑選 DataFrame 的子集可以幫助我們檢查數據集的質量,以便進一步探索和挖掘數據。例如,我 ...
  • zTree -- jQuery 樹插件網址:https://www.treejs.cn/v3/main.php#_zTreeInfo 自行下載所需要的文件 我自己寫的一些具體示例: 使用的.netCore 6 後端使用的ORM框架SqlSugar的中的ToTreeAsync方法返回的需要的數據格式, ...
  • 參考文獻: http://www.js-code.com/xindejiqiao/xindejiqiao_274882.html https://www.cnblogs.com/xiaoxiaotank/p/15811749.html 編寫代碼過程中不理解的代碼可參考上面的文獻 首先需要配置你的Pr ...
  • #1. 可空類型修飾符? ```CSharp int i? num=null;//表示可空的整型 DateTime time? dateTime=null; //表示可空的時間 ``` #2.三元(運算符)表達式?: ```C# x?y:z //表示如果表達式x為true,則返回y,如果x為fals ...
  • # 在虛擬機(VMware)上安裝OpenKylin開源操作系統 今天我們一下學習下開放麒麟系統的安裝。也是我的開源項目在OpenKylin上運行的實踐。 希望通過該項目瞭解和學習Avalonia開發的朋友可以在我的github上拉取代碼,同時希望大家多多點點star。 https://github ...
  • Windows 服務預設的遠程桌面服務埠號是3389,在創建完Azure VM之後基本都會添加一個any to any的防火牆規則,方便多人登錄這個機器。 但是隨時隨地的3389掃描搞得我很煩,就修改了預設的windows 遠程桌面服務的埠號,修改完沒有在VM里的windows 自帶防火牆中添加 ...
  • 在Linux標準IO中,就是用庫函數對文件進行操作。在C語言中有許多庫函數方便用戶去對文件進行操作。下麵談談一些簡單基本的函數,這些函數都是被包含在頭文件stdio.h中的。 一、fopen()函數 要操作一個文件,我們肯定先打開它,這裡打開並不是去右鍵文件然後左鍵打開。這裡的打開是指讓系統知道程式 ...
  • ## 1、CentOS-7 > 註意:下列命令要用root賬號/許可權執行 ### 1.1、查看防火牆狀態 ``` systemctl status firewalld ``` ### 1.2、非永久性關閉防火牆 ``` systemctl stop firewalld ``` ### 1.3、非永久 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...