파일에서 후행 ~ 제거 [닫기]

파일에서 후행 ~ 제거 [닫기]

다음으로 끝나는 파일 목록이 있습니다.~

나는 그들을 찾아

find /var/www/vhosts/domain.com/httpdocs/ -type f -name "*.*~"

어떻게 없앨 수 있나요?~

답변1

find /var/www/vhosts/domain.com/httpdocs/ -type f -name '*.*~' \
    -exec sh -c 'for arg do mv -- "$arg" "${arg%\~}"; done' _ {} +
  • _첫 번째 컬렉션을 $0에 전달합니다 _. 그렇지 않으면 첫 번째 파일 이름을 사용합니다.
  • +대신 사용하면 각 파일에 대해 새 셸을 실행하는 대신 단일 명령에 가능한 한 많은 파일 이름을 전달합니다 ;.find

답변2

당신은 그것을 사용할 수 있습니다 rename:

find /var/www/vhosts/domain.com/httpdocs/ -type f -name "*.*~" -exec rename 's/~$//' {} \;

답변3

내 솔루션은 간단한 bash 스크립트입니다.

#!/bin/bash

"$(find /var/www/vhosts/domain.com/httpdocs/ -type f -name '*.*~')"에 있는 파일의 경우
하다
    mv "$file" "$(echo $file | sed -e 's/~//g')"
완벽한

관련 정보