linux 命令 cp ln ls

歡迎轉載,轉載請註明出處:http://blog.csdn.net/hust_superman/article/details/23926213

----------------------------------------------------cp命令-----------------------------------------------------------------

cp 是一個用於複製文件 的 UNIX 命令。文件可以被複制到相同目錄下,也可以複製到其他完全不同的目錄
中(甚至複製到不同的文件系統或是硬盤中。)。如果文件將被複制到相同的目錄中,那麼目標文件文件
必須使用不同於原文件的文件名;在其他情況下,目標文件的名稱允許使用與原文件相同或不同的名稱。
原始的文件不會被改變。

參數

-f (強制) – 在目標文件因沒有寫權限而無法打開時刪除目標文件。這一移除動作先於所有的cp命令複製動作。

-L (間接引用) – 使cp命令跟隨符號鏈接,這樣cp命令將複製符號鏈接指向的文件而不是符號鏈接到目的位置。

-i (交互) – 提示您將要被覆蓋之文件的文件名。當目標目錄或是目標文件中包含一個與原文件(或目錄)名字

     相同的文件(或目錄)時,交互就會發生,如果你輸入 'y' 或者區域語言中等價於 'y'的字符,cp操作將覆蓋

      目標文件,其餘的任意回答都會避免目標文件被原文件覆蓋。

-p (保持) – 對於每個原文件(或目錄),在複製時也複製下述特性:

  • 最後一次修訂時間最後一次訪問時間
  • 所屬用戶ID所屬組ID(僅在有權限如此做時)。
  • 文件權限位以及SUIDSGID權限位。

-R or -r (遞歸) – 複製目錄(遞歸地複製目錄中的所有內容)

用法

將文件複製爲另一文件:

 cp [-f] [-H] [-i] [-p][--] 源文件 目標文件

將文件複製到一目錄下:

 cp [-f] [-H] [-i] [-p] [-r | -R] [--] 源文件 ... 目標目錄

將目錄複製爲另一目錄(必須使用參數 -r 或 -R):

 cp [-f] [-H] [-i] [-p] [--] { -r | -R } 源目錄 ... 目標目錄

示例

欲複製原文件的一份副本,執行:

     cp prog.c prog.bak

這一操作把文件prog.c複製爲prog.bak。如果prog.bak文件不存在,cp命令將創建此文件。如果目標文件已存在,

cp命令將用原文件的內容替代目標文件中的內容。

欲複製當前工作目錄中的文件到另外一目錄中,執行:

     cp jones /home/nick/clients

這一操作將 jones 文件複製到 /home/nick/clients/jones。

欲將文件複製爲新的文件,並保留修改日期與相關的訪問控制權限,執行:

     cp -p smith smith.jr

操作將smith文件複製爲smith.jr文件。此時系統將給與smith.jr與smith文件相同的修改日期和時間而並不使用

當前的系統時間。smith.jr文件同時也繼承了smith文件的訪問控制保護。

欲將某目錄中所有文件複製到新目錄中,執行:

     cp /home/janet/clients/* /home/nick/customers

這一操作僅將clients目錄中的文件複製到customers目錄中。

欲將一個目錄,包括其包含的所有文件與子目錄複製到另一目錄中,執行:

     cp -R /home/nick/clients /home/nick/customers

這一複製將clients目錄以及其中包含的所有文件、子目錄與子目錄中的文件複製到customers/clients目錄下。

 注意在原目錄的結尾無斜槓符:如果你在GNU基礎的系統上執行cp -R /home/nick/clients/ /home/nick/customers

這與原目錄沒有加結尾斜槓符的效果相同。 但如果你在BSD基礎系統上執行相同的命令,這將複製所有client目錄

中的內容,而不是client目錄本身。

欲將複製指定的一些文件到另一目錄中,執行:

     cp jones lewis smith /home/nick/clients

這一操作複製當前工作目錄下的 jones、lewis和smith 文件到 /home/nick/clients 目錄。

欲使用模式匹配字符集來複制文件,執行:

     cp programs/*.c .

這一操作將programs目錄下所有以 .c 結尾的文件都複製到當前目錄下,當前目錄用單個點符號 . 表示。

在 .c 和最後的 . 之間必須用空格隔開。

將文件複製到另一已存在文件的過程是:將已存在文件以更新模式打開(使用這一模式需要擁有目標文件的寫入權限)。

操作的結果是目標文件保留了其原來擁有的權限位。

-------------------------------------------------------------ls命令---------------------------------------------------------------------------------

ls是一個由POSIX單一Unix標準規範的命令,在Unix類Unix系統中都有實現。ls是英文list segment的縮寫,
用於列出文件,是Unix系統中使用非常頻繁的命令。

Unix類Unix操作系統中都有當前目錄的概念,也即程序目前在目錄樹中的位置。

當不加參數運行時,ls列出當前目錄下的所有文件和目錄名。如果以目錄名作爲參數,則會列出該目錄下的文件。

用戶也可以指定多個文件和目錄作爲參數,ls則會列出所有指定的文件和目錄中的文件名。

以 "."(圓點)開頭的目錄在一般情況下不會被列出。用戶可以加 -a 選項查看所有文件。

不加參數時,ls僅僅列出文件和目錄的名稱,不加任何修飾。這通常讓人很難區分文件的類型、大小、權限等屬性。

顯示文件常用信息的一些參數如下:

  • -l(long)長格式,顯示文件類型、權限、硬鏈接的數目、文件擁有者、文件所在的、大小、日期和文件名。
  • -F 在不同類型的文件的文件名結尾追加一個字符以示區別。可執行文件後加"*",目錄後加"/",管道文件後加"|",
  • 套接字文件後加"=",普通文件沒有後綴。
  • -a(all)顯示所有文件,包括以 . 開頭的文件名(默認不顯示)。
  • -R(recursive)迭代顯示目錄下所有的子目錄。ls -R/會顯示文件系統中的所有文件。
  • -d(directory)顯示目錄本身的信息,而不是列出目錄下的文件。

在某些環境下,使用參數"--color"(GNU版)或者"-G"(FreeBSD版)後,ls會根據文件類型輸出不同色彩的格式。

GNU版的ls根據文件的類型、擴展名和使用權限來決定顏色,而FreeBSD版的ls僅僅檢查文件類型和使用權限。

使用上述彩色選項時,輸出示例如下:

 brw-r--r--    1 unixguy staff 64,  64 Jan 27 05:52 block         
 crw-r--r--    1 unixguy staff 64, 255 Jan 26 13:57 character     
 -rw-r--r--    1 unixguy staff     290 Jan 26 14:08 compressed.gz 
 -rw-r--r--    1 unixguy staff  331836 Jan 26 14:06 data.ppm      
 drwxrwx--x    2 unixguy staff      48 Jan 26 11:28 directory     
 -rwxrwx--x    1 unixguy staff      29 Jan 26 14:03 executable    
 prw-r--r--    1 unixguy staff       0 Jan 26 11:50 fifo          
 lrwxrwxrwx    1 unixguy staff       3 Jan 26 11:44 link -> dir   
 -rw-rw----    1 unixguy staff     217 Jan 26 14:08 regularfile   

ls有大量的選項,具體的用法請參考ls的手冊頁

使用色彩來區分文件類型的功能已被禁用,默認設置和 --color=never 同時禁用了它。
使用 --color=auto 選項,ls 只在標準輸出被連至終端時才生成顏色代碼。
LS_COLORS 環境變量可改變此設置,可使用 dircolors 命令來設置。

下面的例子演示了不同參數下ls的使用。

$ pwd
/home/unixguy
$ ls -l
drwxr--r--   1 unixguy  editors   4096  drafts
-rw-r--r--   1 unixguy  editors  30405  edition-32
-r-xr-xr-x   1 unixguy  users     8460  edit
$ ls -F
drafts/
edition-32
edit*

------------------------------------------------------------ln命令---------------------------------------------------------------------------------


ln 是一個用於創建鏈接文件的標準 Unix 命令

通過鏈接文件,不同的文件名可以指向同一個文件。

ln 可以創建兩種類型的鏈接文件:

  1. 符號鏈接,也稱軟鏈接,這是指向另一個不同路徑文件的一個符號路徑。
  2. 硬鏈接,這是一個存儲了鏈接建立時它所指向文件的實際數據的文件副本。

從以下命令示例可看出兩種鏈接文件的區別:

$ echo '文件內容' > oringinal.file
$ ln oringinal.file hardlink.file
$ ln -s oringinal.file softlink.file
$ cat softlink.file
文件內容
$ rm oringinal.file
$ cat softlink.file
cat: softlink.file: 沒有那個文件或目錄
$ cat hardlink.file
文件內容

原始文件被刪除後,符號鏈接將失效,訪問軟鏈接時,會提示找不到文件,但硬鏈接文件還在,而且還保存有原始文件的內容。

ln 可以用兩種方式使用。第一種,是第一個參數指定原始文件,第二個參數指定鏈接文件;第二種,指定多於兩個選項,應該先是多個原始文件(或目錄),最後指定一個目錄,所有原始文件(或目錄)的鏈接將會被創建於最後指定的目錄裏。在後一種方式中,ln 命令的行爲和具體的程序實現有關。

用法:ln [選項]... [-T] 目標 鏈接名(第一種格式)
 或:ln [選項]... 目標 (第二種格式)
 或:ln [選項]... 目標... 目錄 (第三種格式)
 或:ln [選項]... -t 目錄 目標... (第四種格式)
在第一種格式中,創建指定名稱且指向指定目標鏈接。
在第二種格式中,在當前目錄創建指向目標位置的鏈接。
在第三、四種格式中,在指定目錄中創建指向指定目標的鏈接。
默認創建硬鏈接,當使用--symbolic 時創建符號鏈接。
當創建硬鏈接時每個指定的目標都必須存在。符號鏈接可以指向任意的位置,
當鏈接解析正常時,將其解析爲一個與其父目錄關聯的鏈接。


長選項必須使用的參數對於短選項時也是必需使用的。
      --backup[=CONTROL] 爲每個已存在的目標文件創建備份文件
  -b 類似--backup,但不接受任何參數
  -d, -F, --directory 創建指向目錄的硬鏈接(只適用於超級用戶)
  -f, --force 強行刪除任何已存在的目標文件
  -i, --interactive 刪除文件前進行確認
  -L, --logical 將硬鏈接創建爲符號鏈接引用
  -n, --no-dereference 如果目的地是一個鏈接至某目錄的符號鏈接,會將
該符號鏈接當作普通文件處理,先將該已存在的鏈
接備份或刪除
  -s, --symbolic 創建符號鏈接而非硬鏈接
  -S, --suffix=後綴 自行指定備份文件的後綴
  -t, --target-directory=目錄 在指定目錄中創建鏈接
  -T, --no-target-directory 將鏈接名稱當作普通文件
  -v, --verbose 鏈接前先列出每個文件的名稱
      --help 顯示此幫助信息並退出
      --version 顯示版本信息並退出


備份文件的後綴爲"~",除非以--suffix 選項或是SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可通過--backup 選項或VERSION_CONTROL 環境
變量來選擇。以下是可用的變量值:


使用 -s 選項會忽略 -L 和 -P。
否則當源爲一個符號鏈接(默認-P)時,會由最後指定的一個選項來控制行爲。

  none, off       不進行備份(即使使用了--backup 選項)
  numbered, t     備份文件加上數字進行排序
  existing, nil   若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
  simple, never   永遠使用普通方式備份


發佈了36 篇原創文章 · 獲贊 5 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章