Linux

如何在linux中結合find和cp來複製特定文件

  • May 20, 2022

我在linux中遇到以下問題:

我需要從目錄中查找特定文件並將這些文件(如果存在)複製到另一個目錄中

這是命令(我需要找到以單詞 log 開頭的特定文本文件)並且只獲取最近的 10 個;該命令有效

find /mydir -type f -name 'log*.txt' | tail -n 10

不涉及遞歸,我可以找到文件並複制它們

但是我在將其與複製命令結合使用時遇到問題;我試過這個:

find /mydir -type f -name 'log*.txt' | tail -n 10 -exec cp --parents \{\} /tmp/mydir \;

它無法執行 -exec ,這裡有問題。

謝謝

我會xargs用來複製所有文件。

您可以將輸出通過管道傳輸到 xargs,該 xargs 將執行cp所有傳遞的參數。維基百科的文章描述xargs得比我能做的更好,你可以查看 Linux 的聯機幫助頁。

做你想做的事的電話可能是:

find /mydir -type f -name 'log*.txt' | tail -n 10 | xargs -I % cp % /tmp/mydir/

後面的-I標誌% cp %意味著所有傳遞的參數將連接到最後一個%

引用自:https://unix.stackexchange.com/questions/703267