당신은을 대상으로 디렉토리를 통과 할 수 grep
와 -R
와와 입력 패턴의 파일 -f
:
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. If this option is used
multiple times or is combined with the -e (--regexp) option,
search for all patterns given. The empty file contains zero
patterns, and therefore matches nothing.
-R, --dereference-recursive
Read all files under each directory, recursively. Follow all
symbolic links, unlike -r.
그래서 당신은 찾고 있습니다 :
grep -Ff subset.txt -r objects/
다음을 사용하여 일치하는 파일 목록을 얻을 수 있습니다.
grep -Flf subset.txt -r objects/
따라서 최종 목록이 너무 길지 않은 경우 다음을 수행 할 수 있습니다.
mv $(grep -Flf subset.txt -r objects/) new_dir/
그는 반환하면 argument list too long
오류, 사용 :
grep -Flf subset.txt -r objects/ | xargs -I{} mv {} bar/
파일 이름에 공백이나 다른 이상한 문자가 포함될 수 있으면 (GNU 가정 grep
)을 사용하십시오.
grep -FZlf subset.txt -r objects/ | xargs -0I{} mv {} bar/
마지막으로 이진 파일을 제외하려면 다음을 사용하십시오.
grep -IFZlf subset.txt -r objects/ | xargs -0I{} mv {} bar/
"$(subset.txt)"
그런 명령 을 했어요 ? 즉 , 명령 대체 이므로 쉘 이 명령 또는 스크립트처럼 실행subset.txt
됩니다.