다음으로 끝나는 파일 목록이 있습니다.~
나는 그들을 찾아
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')" 완벽한