문제

이런 식으로 보이는 디렉토리가 있습니다

fool@brat:/mydir/ucsc_mm8> tar -xvf *.tar 
1/chr1.fa.masked
1/chr1_random.fa.masked
2/chr2.fa.masked
3/chr3.fa.masked
4/chr4.fa.masked
5/chr5.fa.masked
5/chr5_random.fa.masked
19/chr19.fa.masked
Un/chrUn_random.fa.masked

내가하고 싶은 것은 하위 디렉토리의 모든 "*.masked"파일을 꺼내는 것입니다. /1 까지 /Un. Linux/Unix에서 수행 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

특정 표현식과 일치하는 모든 파일을 파일로 이동시키는 일반적인 방법은 다음과 같습니다.

mv 1/*.masked targetDir

TargetDir가있을 수있는 곳 ..

디렉토리에서 1,2,3에서 옮기려면

mv */*.masked targetDir

또는 번호가 매겨진 디렉토리에서 구체적으로 이동하려면 다음과 같은 것을 실행할 수 있습니다.

mv [0-9][0-9]/*.masked targetDir

다른 팁

많은 UNIX 쉘은 경로의 디렉토리 부분에서 * 연산자를 지원합니다. 다음은 적어도 Bash와 Zsh에서 작동합니다.

ls */*.masked

.masked 하나의 디렉토리에서 더 깊이 끝나는 모든 파일을 반환합니다.

그래서 그들을 옮기기 위해 :

mv */*.masked destination
mv */*.masked .
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top