ファイルから末尾~削除 [閉じる]

ファイルから末尾~削除 [閉じる]

次に終わるファイルのリストがあります。~

私はそれらを見つける

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')"
完璧

関連情報