![ファイルから末尾~削除 [閉じる]](https://linux33.com/image/64620/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E6%9C%AB%E5%B0%BE%EF%BD%9E%E5%89%8A%E9%99%A4%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
次に終わるファイルのリストがあります。~
私はそれらを見つける
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')" 完璧