ディレクトリパスを再入力せずにファイル名を変更する最速の方法

ディレクトリパスを再入力せずにファイル名を変更する最速の方法

私はUnixでファイル名を変更する方法を知っています。

$ mv ~/folder/subfolder/file.txt ~/folder/subfolder/file.sh

     ^-------this part------^    ^------this part-------^

2回すると時間がかかります~/folder/subfolder/file

より速い方法がありますか?

答え1

あなたの殻ならサポート済み サポート拡張(に適用csh、、、、、、、、​​​​​tcshkshzshbashmkshlkshpdkshyash支柱の拡張yash --brace-expand、または)を使用して対話型シェルからset -o brace-expand呼び出すか設定すると、有効になりますfish

mv ~/folder/subfolder/file.{txt,sh}

答え2

rename(util-linuxパッケージの一部)も使用できます。

rename .txt .sh ~/folder/subfolder/file.txt

よりマニュアルページの名前変更詳細については。

答え3

上記のすべてが良いです。これはまた働きます:

( cd ~/folder/subfolder && mv file.txt file.sh )

答え4

cuonglmの答えの有用性を拡張するために(彼の解決策が好きだから信用を得ることができません)、彼の答えは正しいです。

ユースケースは、リモートの場所(実際の問​​題)にあるファイルをmvしたい場合です(例:/folder/subfolder/configFile.dat TO configFile.dat.orig)。

このようなコマンドファイル拡張子の追加(元の拡張を置き換えない)

mv ~/folder/subfolder/file.txt{,.orig}

説明:「{、.orig}」は、ファイル名の末尾の(何も)「.orig」に置き換えることを意味します。

またはファイル拡張子の削除(リバース名の変更)

mv ~/folder/subfolder/file.txt{.orig,}

注:「ディレクトリパスを再入力せずにファイル名を変更する最速の方法」というトピックについて説明します。

関連情報