900개의 파일이 포함된 디렉터리에서 150개의 파일을 복사해야 합니다. 텍스트 파일에 150개 파일 이름이 모두 들어 있습니다. list.txt
Linux에서 어떻게 해야 합니까?
답변1
당신은 이것을 시도 할 수 있습니다rsync
rsync -av --files-from=list_of_filenames.txt SOURCE_DIR DESTINATION_DIR/
대상 디렉터리의 후행 공백을 기록해 두십시오. rsync
현재 작업 디렉터리에서 작동하므로 파일 목록의 파일 경로는 해당 디렉터리를 기준으로 해야 합니다.
답변2
파일을 반복하고 다음을 복사하십시오.
while read file; do cp "$file" /path/to/target/dir; done < list.txt
답변3
파일 경로가 포함된 목록이 이스케이프된 경우 다음 명령을 사용할 수 있습니다.
cp -v $(<list.txt) dest/
목록이 너무 길면 다음을 사용하세요.while
해결책다른 답변에서 제안한대로.
답변4
나는 이렇게 할 것이다:
for f in `cat filenames.txt`; do cp $f destination; done
destination
이를 파일의 대상 위치로 바꿉니다 . 나는 테스트 실행을 통해 내 명령이 올바른지 확인하기 위해 echo
나중에 하나를 삽입하는 경우가 많습니다.do