Linux에서 파일을 매개변수로 전달하고 파일 시스템에서 그 안에 있는 모든 파일 목록을 얻는 방법은 무엇입니까?

Linux에서 파일을 매개변수로 전달하고 파일 시스템에서 그 안에 있는 모든 파일 목록을 얻는 방법은 무엇입니까?

searchfiles.txt파일 이름을 포함하는 이름별 파일이 있다고 가정해 보겠습니다 .

2345098.txt
2345099.txt
2345100.txt

등 (100개 파일 항목)

searchfiles.txt이제 위의 ()를 입력/매개변수로 전달하여 파일 시스템 파일과 일치하는 모든 파일 이름을 나열하거나 표시하려고 합니다.

Linux에서 이를 어떻게 달성할 수 있습니까?

답변1

while read -r file;do [ -f "$file" ] && echo "$file";done <searchfiles.txt

답변2

locate주문은 어떻습니까 ?

#!/bin/bash
cat list | while read line; do
locate $line;
done

또한 updatedb실행하는 것을 기억해야 합니다 locate.

세부정보 man:

설명 찾기는updateb(8)에 의해 준비된 하나 이상의 데이터베이스를 읽고 패턴 중 적어도 하나와 일치하는 파일 이름을 한 줄에 하나씩 표준 출력에 씁니다.

답변3

동일한 디렉토리를 보거나 전체 경로를 제공하는 경우 searchFiles.txt이것을 시도해 볼 수 있습니다 .

ls `cat searchfiles.txt` 2> /dev/null

ls로 나열되도록 요청합니다 searchfiles.txt.

ls존재하는 파일만 나열되며 누락된 파일에 대해서는 메시지가 표시됩니다. 오류를 다음으로 리디렉션하면 /dev/null누락된 파일에 대한 오류 메시지가 인쇄되지 않습니다.

답변4

파일 이름에 특수 문자가 없다고 가정, 당신은 사용할 수 있습니다 lscomm:

ls | comm -1 -2 - searchfiles.txt

그러나 이는 본질적으로 깨지기 쉬우므로 주의하시기 바랍니다.아니요프로덕션 스크립트에서 사용하세요.

바라보다:

관련 정보