ls를 실행하고 출력에서 특정 파일을 제외하고 싶습니다.
다음 명령을 실행하면 모든 파일을 한 줄에 하나씩 얻습니다.
$ ls -1
file1
file2
file3
temp
이 명령을 보여주는 방식으로 실행하고 싶습니다.
$ ls -1 <insert magic here> temp
file1
file2
file3
답변
ls -I <filename>
-I = 파일 이름을 무시합니다. 즉, 지정된 파일을 나열하지 않습니다.
둘 이상의 파일을 무시하려면 각 파일 이름 앞에 -I 를 추가하십시오 .
ls -I file1 -I file2
예를 들어 이름 확장자로 파일을 무시하려면 다음을 수행하십시오.
ls -I "*.jpg" -I "*.svg"
답변
-I를 한 번 사용하면 작동하지만 두 번 사용하면 작동하지 않습니다. 예 :
ls -I *.csv
작동합니다.
그러나
ls -I *.csv -I *.txt
작동하지 않고 대신 txt 파일을 반환합니다.
– 나를 위해 속임수를 무시했습니다 . 이것이 내가 필요하고 일한 것입니다.
ls -lhrt --ignore="*.gz" --ignore="*.1"
이전 백업 로그를 제외하는 로그 폴더의 파일이 표시됩니다.
답변
ls --ignore={"*.jpg","*.png","*.svg"}
답변
나는 이것이 당신이 찾고있는 출력을 생성한다고 생각합니다 :
ls -1 !(temp)
분명히 , 당신은 필요 shopt -s extglob
가 작동하려면
(나는 그것이 활성화, 그래서 먼 과거의 어느 시간에 내가 유용하다고하고 활성화 추측).
grep을 사용하여 출력을 필터링 할 수도 있다고 생각합니다.
ls -1 | grep -v '^temp$'
파이프와 필터를 사용하면 훨씬 더 많은 유연성과 다른 명령 / 상황으로 전환 할 수있는 기술을 제공하지만이 경우에는 관심이 없을 수도 있습니다.