터미널에서 파일 찾기 및 복사

터미널에서 파일 찾기 및 복사

경로를 포함하여 파일 이름 목록이 포함된 .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/

두 번째 요구 사항은 그다지 실용적이지는 않지만 목록이 파일 이름 목록일 뿐이라고 가정하면 다음과 같이 작동할 수 있습니다.

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

find해당 이름을 가진 첫 번째 파일(현재 디렉터리에서 재귀적)을 찾아서 복사하는 연속 라인을 전달합니다 .

관련 정보