유닉스 : 순차적으로 파일 복사


0

필자가 오래 전부터 나는 그런 것을 사용 해왔다 : 총 사령관에서 나는 복사 대화 상자에서 F2를 눌렀다 - "복사 작업"을 "복사 대기열"에 추가했다. 그리고 모든 파일은 순차적으로 복사됩니다. 그러한 "순차적 인"대응을위한 간단한 도구가 있습니까?

편집 : 동적으로 대기열에 "복사 작업"을 추가하고 싶습니다.

예 : 많은 파일이 있습니다. 나는 파일 A를 복사하고자하는 것을 이해한다. 파일 A가 대처하고있는 동안, 나는 또한 파일 B를 어딘가에 복사해야한다는 것을 이해하지만, 이미 복사 된 직후에 대처해야한다.


1
어떤 큐? 너 왜 그냥 사용하지 않는거야? cp?
terdon

그래서 피하려고하는 것은 동시에 하나 이상의 파일을 복사하는 것입니까?
terdon

네, 그렇습니다. 이 순서를 동적으로 변경할 수있는 기능. 오늘 저녁에 내가 원하는 것을 표현할 수 없다는 것에 사과드립니다.
MInner

서로 사용 후 두 가지 작업을 수행하려면 ;, && 또는 ||. E, g 'task1; task2 '는 task1을 실행 한 다음 task2를 실행합니다. 두 작업 모두 복사 명령으로 수행 할 수 있습니다. (& amp; & amp;와 ||는 조건문입니다. task1 && task2 (아무런 오류가없는) task1을 실행 한 다음 task2를 실행하고 그렇지 않으면 task2를 건너 뛰는 것을 의미합니다. || 또는 그 반대로, 오류시에만 실행하십시오. )
Hennes

1
터미널 솔루션이 필요한가요? 아니면 총사령관 복제품입니까? KDE의 "krusader"에는 복사 큐 기능도 포함되어 있습니다.
Tim

답변:


1

무슨 뜻인지 모르겠다. 복사 명령의 기본 동작이다 ( cp ) :

  • 많은 파일 복사 :

    cp *txt *jpg destination_dir
    

다음은 좀 더 복잡한 작업의 몇 가지 예입니다.

  1. 목록에서 읽은 모든 파일 복사 ( 정상적인 파일 이름, 공백 또는 이상한 문자가 있다고 가정합니다. ) :

    while read n; do cp $n destination_dir < file_list.txt
    
  2. 위와 같지만 공백이나 이상한 문자가있는 파일 이름에 적용됩니다.

    while IFS= read -r n; do cp "$n" destination_dir < file_list.txt
    
  3. 패턴과 일치하는 모든 파일을 찾아 복사합니다.

    find . -name "*data*" -exec cp {} destination_dir \;
    
  4. 위와 같지만 이상한 파일 이름으로 작동합니다.

    find . -print0 -name "*data*" | xargs -0 cp -t destination_dir \;
    

나는 아직도 이해하지 못한다. 당신은 이것을하고 싶지만 OK 일 것입니다. 현재 작업이 끝난 후에 실행될 복사 작업을 추가하려면 다음을 수행하십시오.

  1. 복사 할 파일 목록을 작성하십시오. 하나의 파일로 시작하기 때문에 목록에는 하나의 파일 이름 만 포함됩니다.

    echo "fileA" > list.txt
    
  2. 목록을 읽음으로써 파일을 복사하기 시작합니다 (이전과 같이, 이것은 제정신의 파일 이름에 공백이나 이상한 영숫자가 아닌 파일 이름이 포함될 수있는 경우 위의 목록에서 예제 2를 사용하십시오.

    while read n; do cp -v $n destination_dir < file_list.txt
    
  3. 복사 할 다음 파일을 찾아 목록에 추가하십시오.

    echo "fileB" >> list.txt
    

복사가 완료되기 전에 3 단계를 수행하는 동안 첫 번째 파일이 완료 되 자마자 다음 파일이 복사됩니다.

나는 왜 당신이 단순히 많은 독립적 인 것을 착수하지 않는지 이해하지 못합니다. cp 명령 대신. 내가 말할 수있는 한 너는 아무런 이유없이 일을 복잡하게 만든다.


나도 알아, 고마워. "복사 작업"을 큐에 동적으로 추가하고 싶습니다.
MInner

너는 너를 의미한다. 필요한 것 총 사령관을위한 해결책?
terdon

나는 "TC copy queue"가 유닉스에서 윈도우즈에서했던 것처럼 작동하는 것이 필요하다.
MInner

나는 그것을 알아 냈다. 그러나 나는 "TC copy queue"를 한번도 사용하지 않았다. 설명해 주 시겠어요? fileB 복사를 시작해야합니다. 후에 만 fileA가 끝났습니까? 그렇지 않으면 N을 시작할 수 있습니다. cp 명령을 병렬로 실행합니다.
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.