/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번째,
Om
glob 한정자 추가(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
일반적인 경우에는 보장되지 않음).