特定の文字の後のファイル名を切り取る方法

特定の文字の後のファイル名を切り取る方法

wgetに関する制限された知識として、次のような名前のファイルがたくさんあります。

doc1.pdf@uselessjunk    
doc1.mobi@uselessjunk

シンボルの前にファイル名のみを取得する方法は@?影響を受ける拡張が複数あるため、特定の拡張を置き換える必要はありません。

答え1

for file in *@*; do
   if ! [[ -f "${file%%@*}" ]]; then
       mv "$file" "${file%%@*}"
   else
       echo "Replacement for '$file' already exists.  Skipping."
   fi
done

関連情報