成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux中復制文檔?

系統 Linux
數字實體復制起來十分簡單已是一個不爭的事實,以致于大部分現代電腦用戶從未考慮過其它的復制他們工作的方式。無論如何,在 Linux 中復制文檔仍有幾種不同的方式。每種方法取決于你的目的不同而都有其獨到之處。

[[274720]]

了解在 Linux 中多種復制文檔的方式以及各自的優點。

在辦公室里復印文檔過去需要專門的員工與機器。如今,復制是電腦用戶無需多加思考的任務。在電腦里復制數據是如此微不足道的事,以致于你還沒有意識到復制就發生了,例如當拖動文檔到外部硬盤的時候。

數字實體復制起來十分簡單已是一個不爭的事實,以致于大部分現代電腦用戶從未考慮過其它的復制他們工作的方式。無論如何,在 Linux 中復制文檔仍有幾種不同的方式。每種方法取決于你的目的不同而都有其獨到之處。

以下是一系列在 Linux、BSD 及 Mac 上復制文件的方式。

在 GUI 中復制

如大多數操作系統一樣,如果你想的話,你可以完全用 GUI 來管理文件。

拖拽放下

最淺顯的復制文件的方式可能就是你以前在電腦中復制文件的方式:拖拽并放下。在大多數 Linux 桌面上,從一個本地文件夾拖拽放下到另一個本地文件夾是移動文件的默認方式,你可以通過在拖拽文件開始后按住 Ctrl 來改變這個行為。

你的鼠標指針可能會有一個指示,例如一個加號以顯示你在復制模式。

 

復制一個文件

復制一個文件

注意如果文件是放在遠程系統上的,不管它是一個 Web 服務器還是在你自己網絡里用文件共享協議訪問的另一臺電腦,默認動作經常是復制而不是移動文件。

右擊

如果你覺得在你的桌面拖拽文檔不夠精準或者有點笨拙,或者這么做會讓你的手離開鍵盤太久,你可以經常使用右鍵菜單來復制文件。這取決于你所用的文件管理器,但通常來說,右鍵彈出的關聯菜單會包括常見的操作。

關聯菜單的“復制”動作將你的文件路徑(即文件在系統的位置)保存在你的剪切板中,這樣你可以將你的文件粘貼到別處:(LCTT 譯注:此處及下面的描述不確切,這里并非復制的文件路徑的“字符串”,而是復制了代表文件實體的對象/指針)

 

復制一個文件

從右鍵菜單復制文件

在這種情況下,你并沒有將文件的內容復制到你的剪切版上。取而代之的是你復制了文件路徑。當你粘貼時,你的文件管理器會查看剪貼板上的路徑并執行復制命令,將相應路徑上的文件粘貼到你準備復制到的路徑。

用命令行復制

雖然 GUI 通常是相對熟悉的復制文件方式,用終端復制卻更有效率。

cp

在終端上等同于在桌面上復制和粘貼文件的最顯而易見的方式就是 cp 命令。這個命令可以復制文件和目錄,也相對直接。它使用熟悉的來源目的(必須以這樣的順序)句法,因此復制一個名為 example.txt 的文件到你的 Documents 目錄就像這樣:

  1. $ cp example.txt ~/Documents

就像當你拖拽文件放在文件夾里一樣,這個動作并不會將 Documents 替換為 example.txt。取而代之的是,cp 察覺到 Documents 是一個文件夾,就將 example.txt 的副本放進去。

你同樣可以便捷有效地重命名你復制的文檔:

  1. $ cp example.txt ~/Documents/example_copy.txt

重要的是,它使得你可以在與原文件相同的目錄中生成一個副本:

  1. $ cp example.txt example.txt
  2. cp: 'example.txt' and 'example.txt' are the same file.
  3. $ cp example.txt example_copy.txt

要復制一個目錄,你必須使用 -r 選項(代表 --recursive,遞歸)。以這個選項對目錄 nodes 運行 cp 命令,然后會作用到該目錄下的所有文件。沒有 -r 選項,cp 不會將目錄當成一個可復制的對象:

  1. $ cp notes/ notes-backup
  2. cp: -r not specified; omitting directory 'notes/'
  3. $ cp -r notes/ notes-backup

cat

cat 命令是最易被誤解的命令,但這只是因為它表現了 POSIX 系統的極致靈活性。在 cat 可以做到的所有事情中(包括其原意的連接文件的用途),它也能復制。例如說使用 cat 你可以僅用一個命令就從一個文件創建兩個副本。你用 cp 無法做到這一點。

使用 cat 復制文檔要注意的是系統解釋該行為的方式。當你使用 cp 復制文件時,該文件的屬性跟著文件一起被復制,這意味著副本的權限和原件一樣。

  1. $ ls -l -G -g
  2. -rw-r--r--. 1 57368 Jul 25 23:57  foo.jpg
  3. $ cp foo.jpg bar.jpg
  4. -rw-r--r--. 1 57368 Jul 29 13:37  bar.jpg
  5. -rw-r--r--. 1 57368 Jul 25 23:57  foo.jpg

然而用 cat 將一個文件的內容讀取至另一個文件是讓系統創建了一個新文件。這些新文件取決于你的默認 umask 設置。要了解 umask 更多的知識,請閱讀 Alex Juarez 講述 umask 以及權限概覽的文章。

運行 unmask 獲取當前設置:

  1. $ umask
  2. 0002

這個設置代表在該處新創建的文檔被給予 664rw-rw-r--)權限,因為該 unmask 設置的前幾位數字沒有遮掩任何權限(而且執行位不是文件創建的默認位),并且寫入權限被最終位所屏蔽。

當你使用 cat 復制時,實際上你并沒有真正復制文件。你使用 cat 讀取文件內容并將輸出重定向到了一個新文件:

  1. $ cat foo.jpg > baz.jpg
  2. $ ls -l -G -g
  3. -rw-r--r--. 1 57368 Jul 29 13:37  bar.jpg
  4. -rw-rw-r--. 1 57368 Jul 29 13:42  baz.jpg
  5. -rw-r--r--. 1 57368 Jul 25 23:57  foo.jpg

如你所見,cat 應用系統默認的 umask 設置創建了一個全新的文件。

最后,當你只是想復制一個文件時,這些手段無關緊要。但如果你想復制文件并保持默認權限時,你可以用一個命令 cat 完成一切。

rsync

有著著名的同步源和目的文件的能力,rsync 命令是一個復制文件的多才多藝的工具。最為簡單的,rsync 可以類似于 cp 命令一樣使用。

  1. $ rsync example.txt example_copy.txt
  2. $ ls
  3. example.txt    example_copy.txt

這個命令真正的威力藏在其能夠不做不必要的復制的能力里。如果你使用 rsync 來將文件復制進目錄里,且其已經存在在該目錄里,那么 rsync 不會做復制操作。在本地這個差別不是很大,但如果你將海量數據復制到遠程服務器,這個特性的意義就完全不一樣了。

甚至在本地中,真正不一樣的地方在于它可以分辨具有相同名字但擁有不同數據的文件。如果你曾發現你面對著同一個目錄的兩個相同副本時,rsync 可以將它們同步至一個包含每一個最新修改的目錄。這種配置在尚未發現版本控制威力的業界十分常見,同時也作為需要從一個可信來源復制的備份方案。

你可以通過創建兩個文件夾有意識地模擬這種情況,一個叫做 example 另一個叫做 example_dupe

  1. $ mkdir example example_dupe

在第一個文件夾里創建文件:

  1. $ echo "one" > example/foo.txt

用 rsync 同步兩個目錄。這種做法最常見的選項是 -a(代表 “archive”,可以保證符號鏈接和其它特殊文件保留下來)和 -v(代表 “verbose”,向你提供當前命令的進度反饋):

  1. $ rsync -av example/ example_dupe/

兩個目錄現在包含同樣的信息:

  1. $ cat example/foo.txt
  2. one
  3. $ cat example_dupe/foo.txt
  4. one

如果你當作源分支的文件發生改變,目的文件也會隨之跟新:

  1. $ echo "two" >> example/foo.txt
  2. $ rsync -av example/  example_dupe/
  3. $ cat example_dupe/foo.txt
  4. one
  5. two

注意 rsync 命令是用來復制數據的,而不是充當版本管理系統的。例如假設有一個目的文件比源文件多了改變,那個文件仍將被覆蓋,因為 rsync 比較文件的分歧并假設目的文件總是應該鏡像為源文件:

  1. $ echo "You will never see this note again" > example_dupe/foo.txt
  2. $ rsync -av example/  example_dupe/
  3. $ cat example_dupe/foo.txt
  4. one
  5. two

如果沒有改變,那么就不會有復制動作發生。

rsync 命令有許多 cp 沒有的選項,例如設置目標權限、排除文件、刪除沒有在兩個目錄中出現的過時文件,以及更多。可以使用 rsync 作為 cp 的強力替代或者有效補充。

許多復制的方式

在 POSIX 系統中有許多能夠達成同樣目的的方式,因此開源的靈活性名副其實。我忘了哪個復制數據的有效方式嗎?在評論區分享你的復制神技。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2016-12-20 09:47:17

Linux命令復制文件到多個目錄

2023-11-07 18:03:31

Vim復制粘貼

2009-11-23 20:05:29

ibmdwLotus

2024-04-11 08:30:05

JavaScript數組函數

2019-09-16 13:48:03

Linux管理日志

2021-04-30 13:19:20

Linux刪除分區

2022-11-01 15:38:22

LinuxShell

2017-01-11 16:41:16

Linux設備文件文件系統

2020-03-02 14:45:53

Linux編輯字幕命令

2019-03-28 09:25:51

Linux磁盤命令

2019-05-14 11:00:07

LinuxSSH別名

2018-05-29 09:33:55

Linux終端顯示圖片

2023-10-19 11:27:22

Linux記賬工具

2019-09-19 11:46:05

LinuxMint更換主題

2011-05-04 09:11:30

RPM包Linux

2020-09-18 17:29:58

Linux

2019-12-23 09:42:19

Linux輸入emoji

2021-09-21 15:31:05

Kali LinuxVMware安裝

2022-08-29 14:16:53

GRUB主題壁紙

2019-08-12 14:04:51

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区久久精品视 | 久久人人爽人人爽人人片av免费 | 久久国产麻豆 | 丁香五月网久久综合 | 国产精品视频在线播放 | 一区久久 | 一区二区三区小视频 | 免费成人av | 97精品超碰一区二区三区 | 日本久久久久久 | 国产精品www | 极品国产视频 | 蜜桃视频在线观看www社区 | 美女拍拍拍网站 | 99热热99 | 亚洲天堂av网 | 免费成人毛片 | 久久99久久| 欧美精品一二区 | 国产一级黄色网 | 国产一区二区精华 | 午夜一区 | 欧美成人在线免费 | 国产精品高潮呻吟久久av野狼 | 国产精品178页| 狠狠草视频 | 久久久久国产一区二区三区 | 亚洲免费影院 | 在线久草| 欧美性生交大片免费 | 日韩精品一区二区在线观看 | 欧美日韩精品亚洲 | 亚洲网站在线播放 | 成人妇女免费播放久久久 | 中文字幕精品一区久久久久 | 噜啊噜在线| 国产视频中文字幕 | 欧美激情精品久久久久 | 在线第一页 | 亚洲永久字幕 | 2022国产精品 |