파일 이름 시작 부분에 대시 "-"를 사용하여 여러 파일을 여는 방법은 무엇입니까?

파일 이름 시작 부분에 대시 "-"를 사용하여 여러 파일을 여는 방법은 무엇입니까?

파일 한 번 열기를 사용할 수 있지만 cat -- -file00한 번에 여러 파일을 열고 싶습니다. find를 사용해 보았으나 찾을 수 없었습니다.

find ./ -name '*.txt' exec cat {} \;

find ./ -name '*.txt' exec grep 'inhere' {} \;

이들 중 어느 것도 작동하지 않습니다. 디렉터리에 다음 형식의 파일이 여러 개 있습니다. -file00 -file01 -file03 -file04 -file05 -file06

답변1

-name '*.txt'.txt이름이 .로 끝나는 파일을 일치시키는 것입니다 . 그건 당신과 어울리지 않을 거예요. 파일과 일치하는 패턴을 사용하십시오.

find . -name '-file*' -exec cat {} +

또는

cat ./-file*

모두 현재 디렉터리에 있는 경우(파일을 무작위 순서로 나열하는 것과 달리 이러한 파일을 알파벳 순서로 find정렬하는 이점도 있습니다).

가 아닌 로 시작하기 위해 모든 매개변수가 --전달되었으므로 위의 내용은 필요하지 않습니다 .cat./-

보다 구체적인 일치를 위해( -file뒤에 소수점 이하 두 자리만 표시됨):./-file[0-9][0-9]

답변2

xargs원한다면 그것도 사용할 수 있습니다.

find ./ -name '-file0*' | xargs cat 

위에서 언급했듯이 실제로 파일 .txt확장자가 없습니다. 그렇다면 다음 -file0*으로 대체할 수 있습니다.*.txt

관련 정보