.bashrc가 덮어 쓰기되었지만 여전히 소스입니다. 어떻게 복구 할 수 있습니까?


19

일반적으로 별칭을 지정하려는 명령을 찾으면 다음과 같이 .bashrc에 에코합니다.

[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc

더 좋은 방법이있을 수 있습니다. 그러나 어쨌든 지금은 단일 쉐브론을 사용하여 전체 .rc 파일을 덮어 썼습니다. 그러나 .bashrc는 여전히 최신 버전이므로 여전히 이전 별칭을 수락합니다 (물론). 그것을 복구하는 방법이 있습니까?


6
echo "set -o noclobber" > ~/.bashrc(두 번째 꺾쇠 괄호를 추가해야 함)
hahaamu


1
향후 : 파일을 백업하여 문제가되지 않도록하십시오. 이러한 빠른 애드온을위한 별도의 파일을 만들어 .bashrc와 같은 곳에서 소싱하는 것도 고려할 수 있습니다. 기본 안전망을 제공하며 필요에 따라 쉽게 켜고 끌 수 있습니다.
Joe

2
현재 설정을 저장할 수 있지만 호스트, 사용자 등과 같은 로컬 변수에 의존 .bashrc하는 논리가 있는 경우 아마도 복구 할 수 없습니다. 실제 대답은 가장 최근 백업에서 복원하는 것입니다. 최근 백업 권한이 있습니까?
jw013

답변:


22
  • alias 매개 변수 없이는 현재 정의 된 별명의 정의를 출력합니다.
  • declare -f 현재 정의 된 함수의 정의를 출력합니다.
  • export -p 현재 정의 된 변수의 정의를 출력합니다.

이러한 모든 명령 출력 정의를 재사용 할 준비가되면 출력을 새로 직접 리디렉션 할 수 있습니다 ~/.bashrc.

모든 목록에는 다른 곳에 정의 된 많은 요소가 포함됩니다 (예 : /etc/profile및) /etc/bash_completion. 따라서 목록을 수동으로 정리해야합니다.


3
또한 .bashrc시스템 의 기본값에서 시작하는 것이 좋습니다 . 데비안에서는 /etc/skel에 있거나, 가능하다면 새로운 사용자를 만들 수있는 새로운 사용자를 만들 수 있습니다 .bashrc.
enzotib

1
setdeclare(인수 없음) 한 번에이 모든 것을 표시합니다.
rozcietrzewiacz

@enzotib, 좋은 생각입니다. 나는 기본의 .bashrc이있는 것이 당연 ... 한
ixtmixilix

1

typeset -f > .bashrc 당신이 가진 모든 별명을 제공해야합니다.


에 대한 functions명령이 없습니다 4.2.10(2)-release. 당신은 아마 의미 declare -f합니다.
Chris Down

사실, 저는 "typeset -f"를 의미했습니다
Paul Tomblin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.