在終端機中尋找和複製文件

在終端機中尋找和複製文件

我有一個 .txt 檔案(稱為 list.txt),其中包含檔案名稱列表,包括它們的路徑。例如:

/Users/Me/Downloads/0001.pdf
/Users/Me/Downloads/0010.pdf
/Users/Me/Downloads/0053.pdf

我希望將它們複製到桌面上名為“new-folder”的資料夾中。我在終端機中使用此腳本來執行此操作:

cp `cat /Users/Me/Desktop/list.txt` /Users/Me/Desktop/new-folder/

這很花錢!
但現在我想擴充這個功能。
首先,如果路徑包含空格則不起作用,這不太實用。
其次,我並不總是確定路徑。我希望終端機在某個資料夾及其子資料夾中搜尋名為“0001.pdf”的檔案。

我對終端的了解幾乎僅限於這個腳本,只是為了讓你們知道。
我希望有人能幫助我,非常感謝!

答案1

您可以使用xargs引用每一行。

xargs -a list.txt -I% cp "%" destination/

您的第二個要求不是很實用,但假設 list 只是檔案名稱列表,這樣的東西可以工作:

xargs -a list.txt -L1 -I% find -name "%" -exec cp {} destination/ \; -quit

它將傳遞連續的行,以find找到具有該名稱的第一個檔案(在當前目錄中,遞歸)並複製它。

相關內容