Linux 명령을 사용하여 내 디렉토리에서 ~로 표시된 파일을 어떻게 삭제할 수 있습니까?

Linux 명령을 사용하여 내 디렉토리에서 ~로 표시된 파일을 어떻게 삭제할 수 있습니까?

~ 기호로 파일이 생성되는 이유는 무엇입니까?

~ 기호를 제거하면 원본 파일이 영향을 받나요?

내 파일: (리눅스 명령 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옵션 은 --hideGNU coreutils 패키지 구현 ls에서 사용할 수 있는 GNU 확장 이지만 lsLinux 시스템에 이미 설치되어 있을 가능성이 높습니다.

별칭 및 셸 기능에 대해서는 bash설명서에 다음 문구가 포함되어 있습니다.

거의 모든 목적에서 별칭은 쉘 함수로 대체됩니다.

답변2

이러한 파일은 일반적으로 일부 텍스트 편집기에서 생성됩니다. 즉, 원본 파일의 백업입니다.

다음과 같은 경우 이 파일을 보고 싶지 않은 경우 ls:

ls | grep -v '~$'

또는 GNU를 사용하십시오 ls:

ls --hide='*~'

삭제하려면 다음 단계를 따르세요.

rm ./*~

이를 제거해도 원본 파일에는 영향을 미치지 않습니다(끝에 ~가 없는 파일).

관련 정보