~ 기호로 파일이 생성되는 이유는 무엇입니까?
~ 기호를 제거하면 원본 파일이 영향을 받나요?
내 파일: (리눅스 명령 ls를 통해 얻음)
DG_Item122 DG_Item147 DG_Item175 DG_Item200 DG_Item226 DG_Item249~ DG_Item271~ DG_Item293~ DG_Item314~ DG_Item49 DG_Item80
DG_Item122~ DG_Item148 DG_Item175~ DG_Item200~ DG_Item226~ DG_Item25 DG_Item272 DG_Item294 DG_Item315 DG_Item5 DG_Item80~
내 예상 결과:
인쇄할 파일에 물결표 문자가 없습니다.
답변1
일부 텍스트 편집기를 사용하여 파일을 편집할 때 편집기는지원접미사가 ~
. 다른 편집자들은 다른 접미사를 사용할 수도 있지만 ~
이는 Unix에서 가장 일반적으로 사용되는 백업 접미사입니다.
백업이 더 이상 필요하지 않다고 생각되면 다음 파일을 삭제할 수 있습니다.
$ rm *~
백업 파일을 보관하고 싶지만 의 출력에서 확인하고 싶지 않은 경우 ls
다음을 사용할 수 있습니다.
$ ls -B
또는
$ ls --ignore-backups
(그건 같은거야). 이러한 플래그는 ls
쉘 파일 이름 와일드카드 패턴과 특별히 일치하는 파일을 무시 합니다 *~
(공통 백업 접미사이기 때문입니다). 다른 파일 목록을 숨기려면 eg를 사용하세요 (이렇게 하면 접미사가 있는 --hide='*.bak'
모든 파일이 숨겨집니다 ). 로고는 의 약어로 간주될 수 있습니다 ..bak
-B
--ignore-backups
--hide='*~'
-B
매번 입력하는 것을 방지하려면 ~/.bashrc
파일에 다음을 추가할 수 있습니다.
function ls {
command ls --ignore-backups "$@"
}
ls
이렇게 하면 명령이 추가된 플래그로 real을 호출하는 쉘 함수로 효과적으로 "대체"됩니다 .ls
--ignore-backups
셸 함수 대신 별칭을 추가할 수 있습니다.
alias ls='command ls -B "$@"'
...이렇게 하면 더 깔끔해 보인다고 생각하신다면요.
참고: -B
/ --ignore-backups
옵션 은 --hide
GNU coreutils 패키지 구현 ls
에서 사용할 수 있는 GNU 확장 이지만 ls
Linux 시스템에 이미 설치되어 있을 가능성이 높습니다.
별칭 및 셸 기능에 대해서는 bash
설명서에 다음 문구가 포함되어 있습니다.
거의 모든 목적에서 별칭은 쉘 함수로 대체됩니다.
답변2
이러한 파일은 일반적으로 일부 텍스트 편집기에서 생성됩니다. 즉, 원본 파일의 백업입니다.
다음과 같은 경우 이 파일을 보고 싶지 않은 경우 ls
:
ls | grep -v '~$'
또는 GNU를 사용하십시오 ls
:
ls --hide='*~'
삭제하려면 다음 단계를 따르세요.
rm ./*~
이를 제거해도 원본 파일에는 영향을 미치지 않습니다(끝에 ~가 없는 파일).