天天看點

Linux指令之目錄切換、建立/删除/複制/移動檔案 - cd,mkdir,cp,mv,rmdir,rm

轉載自:

http://billie66.github.io/TLCL/book/zh/chap03.html

http://billie66.github.io/TLCL/book/zh/chap05.html

cd 切換目錄

【文法】 cd  dir_name

【指令說明】

cd ../ 切換到上層目錄(..表示上級目錄);

cd app 切換到app目錄(相對路徑);

cd ./app 切換到app(等價于 cd app);

cd /app 切換到/app目錄(絕對路徑);

$ cd ~[enter] #切換到目前登入使用者主目錄;

$ cd [enter] #切換到目前登入使用者主目錄(等價于指令 cd ~);

$ cd -[enter] #切換到前一個目錄(較常用);

$ cd ~ user_name #切換到指定使用者主目錄;

mkdir 建立目錄

【文法】 mkdir [-p] dir_name

【參數說明】

-p 如果父目錄存在,則忽略,同時建立缺失的部分,常用; 例如:

    $ mkdir -p /opt/app/tomcat

cp 拷貝檔案

【文法】 cp [-pri] file_one [file_two ...] destination

【指令說明】

将檔案拷貝到目标上,目标不能與檔案同名;

若目标是檔案,則拷貝的檔案隻能有一個;

若目标是目錄,則拷貝的檔案可以有多個;

若目标是目錄,則将檔案拷貝到這個目錄下;

若目标檔案不存在,則建立這個檔案;

若目标檔案存在,則覆寫其内容;

【選項說明】

-a,--archive #複制檔案和目錄以及它們的屬性,包括所有權和權限;通常複制具有使用者所操作檔案的預設屬性;

-i,--interactive #覆寫已存在檔案時作提示,輸入y則覆寫,其他則中止;

-p 不僅拷貝檔案内容,還有修改時間,存取模式,存取控制表,但是不拷貝 UID 及 GID;

-r,--recursive 若檔案名為目錄,則拷貝目錄下所有檔案及子目錄和它們的檔案,此時目标必須為目錄;

-u,--update #僅複制目标目錄中不存在的檔案,或者是檔案内容新于目标目錄中已經存在的檔案;

-v,--verbose #顯示詳細進度;

mv 移動檔案,重命名檔案

【文法】 mv [-ivu] item1 item2

【指令說明】

将item1移動或重命名為item2;

若目标是目錄,則移動的檔案可以有多個(目錄必須存在);

若目标檔案不存在,則建立這個檔案;

若目标檔案存在,則覆寫其内容;

若目标和源都為目錄,且目标目錄不存在,則建立目錄,并移動源目錄的内容到目标目錄中;

若目标和源都為目錄,且目标目錄存在,則移動源目錄(及其内容)到目标目錄;

【選項說明】

-i,--interactive #覆寫已存在檔案時作提示,輸入y則覆寫,其他則中止;

-u,--update #僅複制目标目錄中不存在的檔案,或者是檔案内容新于目标目錄中已經存在的檔案;

-v,--verbose #顯示詳細進度;

rmdir 删除空目錄

【文法】 rm dir

【指令說明】

該指令隻能删除空目錄.

rm 删除檔案或目錄

【文法】 rm [-fi] file_one [file_tow ...]

【指令說明】

注意:該指令沒有撤銷指令,使用前必須小心,一般将該指令使用别名 alias rm=’rm -i’;尤其要小心通配符!!

思考一個經典例子:假如隻想删除一個目錄中的HTML檔案,輸入: rm *.html

這是正确的,但是如果不小心在"*"和".html"之間多輸入了一個空格,則該指令會删除目錄中的所有檔案.

無論什麼時候,rm指令用到通配符(除了仔細檢查輸入的内容外!),用ls指令來測試通配符,這會讓你看到要删除的檔案清單;

然後按下上箭頭按鍵,重新調用剛剛執行的指令,用rm替換ls.

【選項說明】

-i,--interactive #删除檔案前,提示使用者确認,如果不指定這個選項,rm會默默地删除檔案;

-r,--recursive #遞歸删除檔案;

-f,--force #強制删除檔案,并忽略不存在的檔案,不顯示提示資訊;該選項使 -i選項無效;

-v,--verbose #顯示詳細資訊;

為了防止不小心删除檔案,可以設定類似window的“資源回收筒”功能。

# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D;  mv "[email protected]" $D && echo "moved to $D ok"; }

# alias rm='myrm'

此時,rm指令即有了删除到資源回收筒的功能了。

同時,可以參照 http://blog.csdn.net/wangjunjun2008/article/details/20618023 将該指令寫到中.bashrc,全局有效。

【注意】

1、為了防止死循環(删除/tmp目錄下的檔案,仍然會将檔案移動到/tmp目錄中),是以需要對删除檔案的目錄做相應的判斷。

2、如果使用 rm 指令時,使用了 -r 參數,則會提示參數無效。

繼續閱讀