매우 기본적인 질문입니다. 다른 디렉토리에 파일을 저장하세요.

매우 기본적인 질문입니다. 다른 디렉토리에 파일을 저장하세요.

나는 그의 질문에서 내가 어디에서 잘못되었는지 정말로 이해하지 못합니다. 첫 번째 부분은 다음과 같습니다.

이름에 1개 이상의 숫자가 포함된 /etc의 모든 파일 및 디렉터리 이름을 나열합니다. ls 명령에 "-d"를 사용하고 하위 디렉터리로 이동하지 마세요(즉, 반복하지 마세요). 이 목록을 caine의 홈 디렉터리에 "digit"라는 파일로 저장합니다. /etc에 CD를 넣을 때 "ls" 명령을 실행하여 이름 앞에 "/etc/"가 나타나지 않도록 하십시오.

이는 다음 명령을 사용하여 수행됩니다.

ls -d *[0-9]* > digit

그러나 질문의 ​​두 번째 부분은 다음과 같습니다.

이전 문제를 반복합니다. 이번에는 /home/caine에 CD를 입력하는 동안 연습을 반복합니다. 출력을 digital2에 저장합니다. "digit"와 "digit2"는 동일해야 합니다. 단, "digit2"에서는 모든 파일 이름이 "/etc/"로 시작됩니다.

아래 코드가 작동할 것이라고 생각합니다.

ls -d ../../etc/ *[0-9]* > digit2

파일의 내용을 보면 *와 숫자를 사용하여 설정한 매개변수를 무시하는 것 같아서 명령문을 이동해 보았지만 왜 이것이 작동하지 않는지 혼란스럽습니다.

내가 어디로 잘못 가고 있는지에 대한 제안이나 설명은 크게 감사하겠습니다.

grep을 사용하여 이 작업을 수행할 수 있다는 것을 알고 있지만 배우기 시작했는데도 구문을 올바르게 이해할 수 없는 이유가 여전히 궁금합니다!

답변1

glob을 두 개의 별도 인수로 분할하는 추가 공백을 추가했습니다.

ls -d ../../etc/ *[0-9]* > digit2
#               ^ space

그것은해야한다

ls -d /etc/*[0-9]* > digit2

../..파일의 모든 지점을 정말로 보고 싶지 않다면 필요하지 않습니다.

관련 정보