c로 시작하는 처음 7개 파일을 /bin 디렉터리에 파일로 저장합니다.

c로 시작하는 처음 7개 파일을 /bin 디렉터리에 파일로 저장합니다.

/bin 디렉토리에서 'c'로 시작하는 파일 수를 계산하기 위해 Linux 셸에 명령을 작성했습니다(총 8개).

find /bin/[c]* -type f | wc -l 

지금 하고 싶은 일은 처음 7개 파일의 이름을 텍스트 파일에 저장하는 것인데 파이프라인에 참여하는 데 적합한 명령을 찾을 수 없습니다.

답변1

find /bin/[c]* -type f | head -n 7 > textfile 

답변2

알파벳 순서로 처음 7개를 의미하는 경우 다음과 같습니다 zsh.

printf '%s\n' /bin/c*(.[1,7]) > list.txt

당신이 의미하는 경우

  • 7번째, Omglob 한정자 추가( c*(.Om[1,7]))
  • 최신 7개, om글로벌 한정자 추가
  • 가장 작은 7개:oL
  • 최대 7개:OL

에서 find /bin/[c]*쉘은 glob을 확장하고 결과 파일(알파벳순으로 정렬됨)을 별도의 인수로 전달합니다 find.

이러한 파일 중 하나라도 디렉터리인 경우 find해당 파일을 파고들어 내용을 나열하기 시작합니다(지정되지 않은 순서로).

당신이 원하는 것:

find /bin/c* -prune -type f | head -n 7 > file.txt

어디에 어떤 디렉토리에도 들어갈 -prune수 없습니다 . find그러나 head이 접근 방식을 사용하는 것은 파일 이름에 개행 문자가 포함되지 않은 경우에만 작동합니다(이런 경우가 일반적이지만 /bin일반적인 경우에는 보장되지 않음).

관련 정보