Command-Line

似乎無法連接不同目錄中的多個文件

  • June 7, 2019

我正在嘗試使用以下命令將位於不同目錄中的多個文件連接在一起:

~$ find . -name ‘*.text’ -exec cat {} >> combined.text \;

但是,它似乎不起作用,因為我收到以下回复:

find: missing argument to `-exec'

有什麼我可能錯過的嗎?

謝謝!

您正在使用 unicode 引號:‘’而不是普通引號 ( '')。試試這個命令:

find . -name '*.text' -exec cat {} +  >> combined.text

但是,如果combined.text已經存在,則將列印一個警告,因為combined.text將在啟動之前創建,find因此將通過以下find命令找到:

$ find . -name '*.text' -exec cat {} +  >> combined.text
cat: ./combined.text: input file is output file

您可以通過以下方式避免這種情況:

find . -name '*.text' ! -name combined.text -exec cat {} + >> combined.text

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