ls > filelist를 사용하고 파일 목록 내용을 filelist로 변경합니다.

ls > filelist를 사용하고 파일 목록 내용을 filelist로 변경합니다.

and를 사용해야 ls > filelist하는데 사용하면 "cat filelist"이름 중 하나로 모든 항목이 표시되지만 변경해야 합니다. 파일 목록만으로 이 작업을 수행하는 방법을 잘 모르겠습니다(해당되는 경우).filelistfilelist"* * * File List * * *"filelist

답변1

ls > /tmp/filelist
echo "* * *  File List  * * *"
cat /tmp/filelist

나열된 항목이 없다고 가정 /tmp하면 다음 /tmp으로 변경하십시오./var/tmp

답변2

넌 할 수있어:

ls | grep -vx filelist > filelist

-v옵션을 사용하면 출력에서 ​​일치하는 행을 제외하고 -x전체 행과 일치하게 됩니다(따라서 건너뛰지 않습니다 otherfilelist).

답변3

Unix 명령은 매우 간결하며 무작위 파이프라인에서 더 쉽게 사용할 수 있도록 머리글/바닥글 또는 관련 없는 세부 정보로 출력을 장식하지 않습니다. 이와 같은 것을 추가하는 것은 매우 간단합니다.

(echo '* * * This is a header * * *'; ls ; echo --* footer *--) > filelist

답변4

더 깊은 이해를 위해 전체 명령을 세 부분으로 쉽게 나눌 수 있습니다.

  1. 에코"파일 목록"; echo는 STDIN(표준 입력)에 출력을 인쇄합니다(다른 곳에 파이프하지 않는 경우).

  2. LS | grep -vx file list; 현재 디렉터리의 내용을 나열하고 출력을 grep으로 파이프합니다. 일반적으로 우리의 경우 "grep"은 주어진 키워드("filelist")가 포함된 행만 인쇄합니다. -v 옵션을 사용하면 키워드가 포함되지 않은 행을 찾습니다. Barmar가 언급했듯이 "myfilelist", "filelist2" 등과 같은 "filelist"가 포함된 파일도 제외하므로 -x를 사용하는 것이 좋습니다.

  3. filelist 출력을 "filelist" 파일로 리디렉션합니다. (1)과 (2)는 괄호로 묶이고 세미콜론으로 구분되므로 두 명령의 출력(STDIN에 인쇄됨)이 이 파일로 리디렉션됩니다.

관련 정보