디렉토리에서 모든 파일을 한 걸음 더 나아가십시오
문제
이런 식으로 보이는 디렉토리가 있습니다
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 .
제휴하지 않습니다 StackOverflow