내 데스크탑에 다음 파일이 있다고 가정해 보겠습니다.
aaa.jpg
bbb.jpg
이 두 개의 jpg를 나열하고 .txt 파일로 출력하고 싶습니다.
#!/bin/bash
cd ~/Desktop
ls -1 > all.txt
이 코드를 사용하면 all.txt
다음과 같은 결과를 얻을 수 있습니다.
aaa.jpg
bbb.jpg
all.txt
나는 단지 이 두 개의 jpg를 원합니다 all.txt
.
답변1
.jpg 파일에만 ls 필터를 사용할 수 있습니다.
ls *.jpg > all.txt
답변2
답장을 보내주셔서 감사합니다. 하지만 .jpg뿐만 아니라 모든 것을 나열하고 싶었습니다. 간단한 해결책이 있다는 것을 깨달았습니다
ls * > all.txt
바꾸다
ls > all.txt
와일드카드를 추가하면 출력 파일이 자체적으로 포함되지 않는 이유를 아는 사람이 있습니까?
답변3
@ShayneManning이 제안한 것보다 더 일반적인 솔루션은 다음과 같습니다.
ls | grep -v '^all.txt$' > all.txt
grep
내용별로 행을 필터링하는 데 사용됩니다. 이 옵션은 -v
필터를 반전시킵니다. 따라서 all.txt
의 출력에서 제외됩니다 ls
. 다른 모든 이름은 에 인쇄됩니다 all.txt
.