파일 이름의 패턴을 기반으로 디렉터리의 전체 파일이 아닌 일부 파일을 복사하는 방법은 무엇입니까?

파일 이름의 패턴을 기반으로 디렉터리의 전체 파일이 아닌 일부 파일을 복사하는 방법은 무엇입니까?

다음 패턴에 따라 이름이 지정된 긴 파일 목록이 있습니다.

S901_S1_fastq.gz
S902_S2_fastq.gz
S903_S3_fastq.gz
S904_S4_fastq.gz
etc.

이러한 파일은 다양한 실험 치료법에 해당하므로 각 치료법에 대한 디렉토리로 분리하고 싶습니다. 파일 번호 300을 이동하는 방법이 있습니까 S905_S5_fasta.gz? . . S1205_S305_fasta.gz새 디렉터리를 입력하시겠습니까?

이 작업을 수행하기 위해 다음 루프를 사용해 보았지만 for작동하지 않았습니다.

for i in 'seq 905 1205'; do
  scp S${i}* Target_directory
done

이 루프의 결과는 다음과 같습니다.

cp: cannot stat 'Sseq': No such file or directory
cp: cannot stat '905': No such file or directory
cp: cannot stat '1205*': No such file or directory

어떤 도움이라도 대단히 감사하겠습니다!

답변1

예를 들어 중괄호 확장을 지원하는 셸을 사용하는 경우 bash파일을 직접 열거할 수 있습니다.

# S905_S5_fasta.gz to S1205_S305_fasta.gz
mkdir new_directory
mv S{905..1205}_* new_directory

관련 정보