私のファイルはimport/imagesディレクトリにあります。
Documents\ProductImages\1.jpg
Documents\ProductImages\2.jpg
Documents\ProductImages\3.jpg
ファイル名からどのようにDocuments\ProductImages\
削除できますか?
答え1
次のことを試すことができます。
for i in 'Documents\ProductImages\'*.jpg; do mv -n -- "$i" "${i##*\\}"; done
拡張は、パターン${i##*\\}
に一致する最長のプレフィックスを削除します。ここでは、最後のバックスラッシュまでのすべての項目を別のバックスラッシュにエスケープする必要があります。
答え2
rename
システムに1つがある場合は、通常この種の作業に適したツールです。
2つの可能なバージョンがあることを知っています。構文は異なりますが、どちらもあなたの例で動作します。
Red Hat シリーズに一般的に配布されるバージョンは次のとおりです。
rename 'Documents\ProductImages\' '' *.jpg
他のバージョンではこれを行うことができます。
rename 's/.*\\//' *.jpg
これは、最後の部分以降の部分だけを維持したいと仮定します\
。より具体的に知りたい場合:
rename 's/^Documents\\ProductImages\\//' *.jpg