文件管理之:創建/複製/刪除/移動

= =創建

文件  touch

[root@RHEL6 data]# touch abc.log
[root@RHEL6 data]# touch {jason.1,jason.2,jason.3}
[root@RHEL6 data]# touch {1..20}
[root@RHEL6 data]# touch date +%F-{a..g}.txt

目錄   mkdir

【選項】
-Z:設置安全上下文,當使用SELinux時有效;

-m=<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限;

-p遞歸創建
-v 爲每個目錄顯示提示信息,主要用於檢測文件是否存在
--version 顯示版本信息。

[root@RHEL6 data]# mkdir dir{1,2} //創建dir1和dir2
[root@RHEL6 data]# mkdir date +%F-{test1,test2} //以當前時間創建“2018-09-07-test1”
[root@RHEL6 data]# mkdir -v date +%F-{test1,test2,test3,test4} //-v參數表示先檢測文件夾是否存在,如果存在就不創建,如果不存在就創建
[root@RHEL6 data]# mkdir -p 2018-09-07-test1/a/b{1..3} //-p參數表示遞歸創建,可以與-v複用
[root@RHEL6 data]# mkdir -m 700 2018-09-07-test2/abc
[root@RHEL6 data]# ll 2018-09-07-test2
drwx------. 2 root root 4096 Sep 7 14:27 abc //-m 參數表示在目錄/2018-09-07-test2下建立子目錄abc,並且只有文件主有讀、寫和執行權限,其他人無權訪問

= =複製 cp= =

 【選項】

-a:此參數的效果和同時指定"-dpR"參數相同;

-d:當複製符號連接時,把目標文件或目錄也建立爲符號連接,並指向與源文件或目錄連接的原始文件或目錄;

-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;

-i:覆蓋既有文件之前先詢問用戶;

-l:對源文件建立硬連接,而非複製文件;

-p:保留源文件或目錄的屬性;

-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一併處理;

-s:對源文件建立符號連接,而非複製文件;

-u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才複製文件;

-S:在備份文件時,用指定的後綴“SUFFIX”代替文件的默認後綴;

-b:覆蓋已存在的文件目標前將目標文件備份;

-v:詳細顯示命令執行的操作。

   【避坑】

需要說明的是,爲防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,
用cp命令拷貝文件後,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
cp(copy)命令將一個文件、多個文件或目錄複製到另一個地方。
選項 -R 允許遞歸複製目錄(一般來說,命令中的 -R 或 -r 經常有遞歸的意思)。
如果 cp 命令的最後參數是目錄,所提到的文件將被複制到該目錄下。
注意:默認情況下,cp 命令將“覆蓋”已經存在的文件。

[root@RHEL6 2018]# cp -rv 1.txt 2.txt httpd.conf number.log 2018/ //拷貝所有文件,並顯示結果詳細信息
cp -rv /application/apache /application/nginx/ /data/2018 //遞歸拷貝所有文件到2018下
例:mkdir -p ./files && cp /tmp/test.txt "$_"

= = 移動 mv
【選項】
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,爲其創建一個備份;

-f:force強制的意思,如果目標文件已經存在,不會詢問是否覆蓋。

-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。

-S<後綴>:爲備份文件指定後綴,而不使用默認的後綴;

--target-directory=<目錄>:指定源文件要移動到目標目錄;

-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

= = 刪除 rm
【選項】

-f, --force    忽略不存在的文件,從不給出提示。
   -i, --interactive 進行交互式刪除
   -r, -R, --recursive   指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
   -v, --verbose    詳細顯示進行的步驟
   --help     顯示此幫助信息並退出
   --version  輸出版本信息並退出

[root@RHEL6 data]# rm -i *.txt // 刪除任何.txt文件;刪除前逐一詢問確認
rm: remove regular file `1.txt'?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章