BASH에서 디렉토리를 어떻게 새로 고치나요?


24

컴파일러에서 생성 한 파일이 들어있는 디렉토리가 있습니다. 각 재 구축 중에이 디렉토리가 정리되고 빌드 프로세스 후에 ls빈 출력이 표시됩니다. 내가 cd디렉토리에서 벗어났다가 다시 돌아 가면 제대로 작동합니다. 질문은 :

  1. 디렉토리를 새로 고치는 다른 더 우아한 방법이 있습니까?
  2. 파일을 삭제하고 다시 만들면 실제로 어떻게됩니까? cd실제 디렉토리 내용을보아야 하는 이유는 무엇 입니까?

답변:


10

스크립트는 파일이 아닌 디렉토리를 제거 할 가능성이 높습니다. 따라서 cd디렉토리에 들어갔을 때 디렉토리가 제거되면 ls실제로 존재하지 않는 디렉토리에서 수행 됩니다.

으로 cd ..하고 cd (directory)당신이 이동하고 (새로 생성) 디렉토리에 백업 한 파일은 당신이 예상대로입니다.

가장 좋은 대안은 cd디렉토리에 들어오고 나가는 대신 디렉토리 이름을 ls명령 에 추가 하고 상위 디렉토리에서 실행하는 것입니다. 따라서 ls YourSubdirectory그냥 대신 ls.


45

더 짧은 방법이 있습니다. cd .


3
흥미 롭군 벌새와 마찬가지로 이것은 논리적으로 작동하지 않아야하지만 여전히 작동합니다. 나는 당신이 그것을 시도했기 때문에 그것이 작동한다는 것을 알고 있다고 가정합니다. 이에 대한 문서가 있습니까? 즉, 내가 POSIX / bash 개발 팀에 있었다면이 버그를 버그로 생각하고 싶습니다. 이 방법으로 작동 한다고 말하는 문서를 알고 있습니까?
G-Man은 '복귀 상태 모니카'

3
팔콘처럼, 이것은 아름답게 꽃 위에 뜬다-그러나 벌새를 삼킨다.
Matt Faus

예! 너무 완벽
chrismarx

1
이것이 더 나은 대답입니다.
deddebme

아 알고 있었어! 방법이 있어야했다. 감사!
andersoyvind

10

이상하게 보이지만 짧고 디렉토리를 새로 고칩니다.

cd `pwd`

pwd 주위의 작은 따옴표가 아닌 백틱입니다.


2

@Kent가 말한 것 : 디렉토리를 제거하지 말고 그 내용 만, " cd .. && cd -" 없이 디렉토리에 머물 수 있고 "ls"는 예상 한 것을 수행합니다.


2

디렉토리를 제거하지 않은 것이 좋지만 대신 cd ..; cd -할 수 있습니다 cd $PWD.


2

별명 refresh = "cd .. && cd-"를 작성하면 디렉토리가 올라간 다음 다시 이전 디렉토리로 cd됩니다.

다시 리스팅이 필요하다고 확신한다면

alias refresh="cd .. && cd - && ls -lrt"

ailas가 생성되면 ~ / .bashrc 파일에 별칭을 저장하십시오.

alias | grep refresh >> ~/.bashrc

다음에 로그인 할 때 사용할 수 있도록


유닉스에서는 기본적 refresh으로 제공됩니다.
kenorb

"즉시"란 무엇을 의미합니까? 내가 그것을 보았을 때 나는 그것을 "표준"으로 해석했다. 지금 당신이 무슨 뜻인지 궁금합니다. "UNIX"를 정의하십시오. Cygwin에는 "새로 고침"명령 표준이 없습니다 (OK, Cygwin에는 POSIX / * nix / what에서 표준 인 많은 항목이 누락 됨). 내 Linux 시스템도 없습니다.
G-Man, 'Reinstate
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.