숫자 범위에서 다른 폴더로 파일 복사


7

CP 명령이 14 개에서 39 개까지 번호가 매겨진 파일을 다음 예제에서 Volume2라는 디렉토리에 복사하는 것에 약간의 충격을 받았습니다.

01.mp3  04.mp3  07.mp3  10.mp3  13.mp3  16.mp3  19.mp3  22.mp3  25.mp3  28.mp3  31.mp3  34.mp3  37.mp3
02.mp3  05.mp3  08.mp3  11.mp3  14.mp3  17.mp3  20.mp3  23.mp3  26.mp3  29.mp3  32.mp3  35.mp3  38.mp3
03.mp3  06.mp3  09.mp3  12.mp3  15.mp3  18.mp3  21.mp3  24.mp3  27.mp3  30.mp3  33.mp3  36.mp3  39.mp3 
Volume2

어떤 cp명령도 그렇게 할 수 없습니다 .
이그나시오 바스케스-아 브람스

cp {14..39}.mp3 Volume2물론 내 시스템에서 ... 디렉토리가 있다고 가정합니다.
user55325

답변:


14

당신은 할 수 있습니다

cp {14..39}.mp3 Volume2

그러나 for-loop는 다른 것들에 편리합니다.

for f in {14..39}.mp3; do cp "$f" Volume2; done

숙제는 아니지만 Linux Admin에 중점을 둔 학생입니다.
user98496

대단해 cp {14..39} .mp3 Volume2를 사용해보십시오.
user98496

1
완료를 위해 : for-loop는 cp첫 번째 예제의 단일 호출과 비교하여 N은 노래 수입니다. 호출이 적다는 것은 더 빠르고 리소스를 덜 사용한다는 것을 의미합니다 (이 간단한 경우 실제로는 중요하지 않습니다). 확장 목록이 ARG_MAX-1 (로 값을 확인 getconf ARG_MAX하고 39-14보다 훨씬 큼)을 초과하면 실패합니다. 같은 유틸리티 xargsfind에 분할하여이 경고 돌볼 수 있습니다 ARG_MAX.
Daniel Andersson

위의 예에서 아래 숫자를 포함한 범위에서는 작동하지 않습니다 10. 그런 분들을 위해 다음과 같은 일을 할 수 있습니다cp 0{1..9}.mp3 {10..39}.mp3 Volume2
georg

@georg bash 버전 4.3.42에서 잘 작동합니다. 어떤 쉘을 사용하고 있습니까?
user55325
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.