liunx目錄文件管理命令

一,目錄操作

  1. cd即Change Directory,目錄切換

    • “cd ”沒有加任何路經表示回到當前用戶主文件夾;(同“cd ~”)
    • .代表當前目錄,如“cd .”相當於目錄沒有發生切換;
    • ..代表上一層目錄,如需訪問與a同級的b目錄,可以先回退再進入b,則“cd ../b”;
    • -代表前一個工作目錄,“cd -”主要方便打開剛纔打開的目錄,而兩切換間通常沒有必然層級關係;
    • ~代表“當前工作的用戶”的主文件夾,如當前用戶爲jack,則“cd ~”則會進入到“/home/jack”下;而root用戶的主文件夾路徑爲“/root”
    • ~account代表進入到“account”用戶的主文件夾下,如“cd ~mike”則會進入到“/home/mike”;(注意,”cd ~”和”cd ~account”都只是進入相應的文件夾中,而當前用戶並未發生切換);
    • 注意:所有目錄下都會存在“.”和“..”這兩個目錄,代表此層和上層;
    • Linux中,根目錄“/”下也存在“.”和“..”兩個目錄,不過這兩個目錄指向的都是“/”自身;
  2. pwd 即Print Working Directory,顯示當前目錄的完整路徑

    • 當目錄連接鏈接時,pwd顯示是連接路徑,pwd -p顯示實際路徑;
  3. mkdir即make Directory,新建目錄(注意不是新建文件)

    • “mkdir newDir”;
    • “mkdir -p dir/dir1/dir2”,mkdir不帶-p參數時,不能一次完成多級目錄的創建,-p參數允許多級目錄遞歸創建起來;
    • “mkdir -m 711 newDir”,mkdir不帶-m參數時,目錄權限爲系統默認權限,-m允許對新目錄自設定權限;
  4. rmdir,刪除空目錄

    • rmdir只能刪除空目錄,不能用來刪除具體文件;
    • rmdir只能刪除空目錄,如果目錄下仍存在目錄或文件,則刪除不成功;
    • rmdir /test/test1/test2 ,若test2目錄下爲空,則可通過這種將路徑寫到底的方式刪除test2,注意這種方位只能刪除test2,而test2的上級目錄都不受影響;
    • rmdir -p /test/test1/test2 ,能連同 刪除test,test1,test2,但前提是這條路徑鏈中沒有其他文件或目錄(注意不能有其他目錄和文件!!!),即test中不能有除了test1外不能有其他目錄或文件,同理test1中也只能含test2;
    • 綜上,rmdir只能刪除單個空目錄,rmdir -p只能刪除單鏈路徑的所有目錄;
    • 對於有內容的目錄則只能用“rm -r test”刪除了;(rm test.txt 用來刪除文件,不能輸出目錄;加入-r屬性,纔可刪除目錄即rm -r testDir);

二,執行文件路徑的變量:$PATH

  • 以ls命令爲例,在執行ls命令時,由於ls命令的文件所在路徑爲/bin/ls,之所以在任何地方都能執行ls指令,是因爲設置了環境變量PATH的原因,用“echo $PATH”顯示有哪些路徑被定義出來,如下:
    root@WalleIT:~# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

  • 從打印的路徑中可以找到/bin,所以當使用ls指令時,系統會找到/bin/ls文件,從而執行ls操作;

  • 當然若將ls複製到某路徑,如“/home/test/”,則也可通過“/home/test/ls [-]”來實現ls的相關功能;
  • 向PATH中添加變量,“PATH=”$PATH”:/路徑”;
  • 如果在PATH定義的目錄中含有多個文件名相同的可執行文件,則先查到的同名命令先被執行;

三,文件與目錄的管理

  1. 查看文件與目錄 :ls

    • ls -l 包含文件的屬性和權限,如:drwxrwxr-x 2 ethan ethanworld 4096 3月 28 16:11 myTest
    • ls -a 全部文件,連同隱藏文件以及“.”和“..”,只顯示目錄或文件名,不顯示具體權限屬性;
    • ls -d 僅列出目錄本身,而不是列出目錄內的文件數據;
    • ls [-] test1 test2 ,ls可同時列出多個文件或目錄的信息
  2. 複製命令cp

    • cp -i srcFile dstFile, 若目標文件存在時,-i屬性在覆蓋時會先訪問操作的進行;
    • 默認條件下,cp的源文件與目的文件的權限是不同的,目的文件的所有者通常會是命令操作者本身;所以,對於某些特殊權限的文件,就不能直接以cp複製,而必須加上-a或者-p等可以完全複製文件權限的參數才行
    • cp -p srcFile dstFile,連同文件的屬性一起復制過去,而非使用默認屬性;
    • cp -r srcFile dstFile,遞歸持續複製,用於目錄的複製行爲;
    • cp -s srcFile dstFile,軟連接,複製成爲符號鏈接文件(symbolic link),即“快捷方式”文件;
    • cp -l srcFile dstFile,硬連接(hard link),創建硬連接的鏈接文件,而非複製文件本身;
    • cp -u srcFile dstFile,若dstFile比srcFile舊,纔會更新dstFile,即在目標文件與源文件有差異時纔會複製,常用於“備份”的工作當中;
    • cp -d srcLinkFile dstLinkFile,對於複製鏈接文件的情況下,在沒有添加任何參數時,cp複製的是源文件,而不是鏈接文件的屬性;若要複製鏈接文件的屬性,則需要-d參數;
    • cp srcf1 srcf2 dstDir,如果源文件有兩個以上,則最後一個目的文件一定要是“目錄”才行!
  3. 移除命令rm

    • rm -i file ,-i屬性即互動模式,在刪除前會詢問用戶是否操作;
    • rm -i fileName*, 通過通用符*的幫忙,將開頭爲fileName的文件名全部刪除,星號表示0到無窮多個任意字符;
    • \rm
    • rm -r dir,遞歸刪除目錄,連同子目錄也會刪除,很危險的指令!
    • rm ./-file-,刪除帶有“-”符號的文件時,系統會以爲“-”後面接的時參數,從而產生誤判,所以在帶有“-”文件的前面加上“./”避免誤判;
  4. 移動/更名命令mv

    • mv -f src dst,focus強制的意思,如果目標文件已經存在,不會詢問直接覆蓋;
    • mv -i src dst,若目標文件已經存在,就會詢問是否覆蓋;
    • mv -u src dst,update的意思,測試新舊軟件,看看是否需要移動;
    • mv src1 src2 dstDir,如果有多個源文件或目錄,則最後一個目標文件一定是“目錄”;
    • mv test1 test2,重命名,將test1更改命名爲test2;注意,Linux中rename命令能對多個文件名同時重命名,而並非針對單一文件名的更改;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章