本簡短指南介紹瞭如何使用命令行將文件複製到多個目錄。 find, cp, echo, xargs 什麼時候 tee Linux 上的命令。

前幾天我想將一些視頻複製到我 Arch Linux 桌面上的另一個文件夾中。如您所知,您可以通過右鍵單擊文件並選擇它來執行此操作。 Copy 選擇一個選項並將其粘貼到目標目錄/文件夾中。

但是,我想知道是否有其他方法可以一次將文件複製到多個目錄。 如果您想一次將一個文件複製到多個不同的目錄,您可能會發現它很有用。我進行了一些網絡搜索並提出了以下解決方案。

重要警告:

請注意,以下命令不要求確認。如果目標目錄中存在同名文件,則會自動替換。

如果您是 Linux 新手,我們建議您在任何測試機器上測試這些命令,然後再開始在生產中使用它。這樣,您可以防止不必要的數據丟失。

內容

  1. 將文件從 Linux 命令行複製到多個目錄
    1. 方法一:使用 find 和 cp 命令
    2. 方法 2:使用 echo、xargs 和 cp 命令
    3. 方法 3-使用 tee 命令
      1. 結論是

將文件從 Linux 命令行複製到多個目錄

我有一個名為的文本文件 ostechnix.txt 在我的主目錄中,我想將它複製到兩個不同的目錄: Downloads 什麼時候 Documents 多合一。

首先,讓我們看看如何使用它 find 什麼時候 cp 命令。

方法一:使用 find 和 cp 命令

可用於一次將文件複製到多個目錄 find 什麼時候 cp 命令。

這個 find 是用於在目錄層次結構中搜索文件的 Unix 和 Linux 命令以及用於復製文件和目錄的 cp 命令。

複製命名文件 ostechnix.txt 到達 ~/Downloads 什麼時候 ~/Documents 目錄使用 find 什麼時候 cp 命令,執行:

$ find ~/Downloads/ ~/Documents/ -maxdepth 0 -type d -exec cp ostechnix.txt {} ;
在 Linux 上使用 find 和 cp 命令將文件複製到多個不同的目錄

上述命令會將當前目錄中的 ostechnix.txt 文件複製到以下位置: ~/Downloads 什麼時候 ~/Documents 目錄。

如果沒有指定 '-maxdepth 0' 選項, ostechnix.txt 該文件將被複製到 ~/Downloads, ~/Documents 目錄及其子目錄。所以不要忘記指定它。

如前所述,如果已存在同名文件(即 ostechnix.txt) 在任何目標目錄中,上述命令只是簡單地覆蓋現有文件而無需確認。

如果您不想覆蓋現有文件,可以使用: -n 和標誌 cp 命令是:

$ find ~/Downloads/ ~/Documents/ -maxdepth 0 -type d -exec cp -n ostechnix.txt {} ;

如果目標文件已存在於目標位置,這將不會替換目標文件。

方法 2:使用 echo、xargs 和 cp 命令

將文件複製到多個位置的另一種方法是 echo, xargs 什麼時候 cp 命令。

如你所知, cp 複製文件和目錄的命令,以及 xargs 命令用於從標準輸入構建和執行命令行。

使用以下命令將文件複製到多個目錄 echo, xargs 什麼時候 cp 命令,執行:

$ echo ~/Downloads ~/Documents | xargs -n 1 cp ostechnix.txt
在 Linux 上使用 cp、echo、xargs 命令將文件複製到多個目錄

讓我們分解上面的命令,看看它是如何工作的。

通常來說,一般來說 echo 此命令將指定的字符串或文本打印到標準輸出。但在這種情況下,請使用管道 echo 命令 xargs..這裡, echo 該命令將目錄路徑發送到 xargs 作為輸入。

xargs 要執行的命令 cp 運行兩次命令並在末尾添加每個目錄的路徑 cp 命令。

這個 xargs 該命令採用兩個參數(即目錄路徑)來自 echo 命令。這個 -n 1 選項 xargs 命令告訴 xargs 一次只添加其中一個參數。

同樣,上面的命令替換了現有的目標文件。如果您不想替換目標文件,請添加: -n 命令標誌:

$ echo ~/Downloads ~/Documents | xargs -n 1 cp -n ostechnix.txt

方法 3-使用 tee 命令

Tee 是一個 Unix 和 Linux 實用程序,它從標準輸入讀取並寫入標準輸出和文件。

讓我們複製 ostechnix.txt 將文件放在兩個不同的目錄中。 /home/sk/Downloads 什麼時候 /home/sk/Documents..

為此,只需從終端運行以下命令:

$ tee /home/sk/Downloads/ostechnix.txt /home/sk/Documents/ostechnix.txt < /home/sk/ostechnix.txt

複製上面的命令 ostechnix.txt 主目錄中的文件 ~/Downloads 什麼時候 ~/Documents 目錄。

筆記 tee 此命令還將輸入寫入標準輸出。如果你不想 tee 執行此操作的命令只是將標準輸出重定向到 /dev/null 如下。

$ tee /home/sk/Downloads/ostechnix.txt /home/sk/Documents/ostechnix.txt < /home/sk/ostechnix.txt >/dev/null
在 Linux 上使用 tee 命令將文件複製到幾個不同的目錄在 Linux 上使用 tee 命令將文件複製到幾個不同的目錄

我會再次警告你。如果已經存在同名文件(即 ostechnix.txt) 在目標上,上述命令會覆蓋現有文件。

有關更多信息,請參見上述命令的手冊頁。

$ man cp
$ man find
$ man xargs
$ man echo
$ man tee

結論是

這是一種將文件從 Linux 命令行一次復製到多個目錄的方法。可能還有其他方法,但我發現這些命令非常簡單易用。

再次確保目標路徑正確,最重要的是,目標位置中不存在同名文件。

相關閱讀:

  • 如何在 Linux 上將特定類型的文件從一個目錄複製到另一個目錄
  • 複製特定文件類型,同時保留 Linux 上的目錄結構
  • 同時復製文件和創建目標目錄
  • 如何同時復製文件並更改所有權和權限
  • 複製文件或目錄時如何保持所有權和文件權限相同
  • 使用 Rsync 通過 SSH 恢復部分傳輸的文件
  • 如何在 Linux 和 Unix 上通過網絡快速傳輸大文件
  • AdvancedCopy – 為 Linux cp 和 mv 命令添加進度條
  • 將文件內容複製到剪貼板而不顯示它

BASHcopyfilescp 命令 find 命令 LinuxLinuxbasicsLinux 命令 LinuxhowtoUnix