Saya tahu cara mengganti nama file di Unix:
$ mv ~/folder/subfolder/file.txt ~/folder/subfolder/file.sh
^-------this part------^ ^------this part-------^
Terlalu lama untuk mengulang ~/folder/subfolder/file
dua kali.
Apakah ada cara yang lebih cepat?
rename
.rename
ini solusi yang lebih baik karenarename
tidak pernah meminta Anda untuk mengganti file yang ada atau tidak.Anda juga dapat menggunakan
rename
(bagian dari paket util-linux).Lihat mengganti nama halaman manual untuk lebih jelasnya.
sumber
{a,b}
fungsionalitas shell .rename
adalah program berbasis perl yang sama sekali berbeda. Di sana, Anda akan menggunakannyarename 's/txt$/sh/' ~/folder/subfolder/file.txt
.mmv
.Semua hal di atas baik. Ini juga akan berfungsi:
sumber
sudo
bagian.sudo
?sudo
itu diartikan~
sebagai direktori home root.sudo
denganmv
, tapi tidakcd
. Lihat mengapa cd adalah shell dibangun di Dan Anda tidak bisa.sudo
Yang(
Tidak. Anda perlu memberikan path lengkap ke file untuk mengganti namanya. Satu-satunya alternatif adalah pindah ke folder target sebelum menjalankan
mv
:Atau, Anda bisa menulis fungsi kecil yang mengubah nama file di direktori target. Misalnya, tambahkan baris ini ke file inisialisasi shell Anda (
~/.bashrc
jika Anda menggunakanbash
):Kemudian, buka terminal baru atau jalankan
source ~/.bashrc
untuk membaca kembali file init dan Anda dapat melakukannya:sumber
lmv()
fungsi. Saya tidak tahu itu :)Hanya untuk memperluas kegunaan jawaban cuonglm (BUKAN untuk mengambil kredit karena saya suka solusinya) dan jawabannya adalah yang benar.
Kasus penggunaannya adalah bahwa kita sering ingin melakukan mv file di lokasi yang jauh (masalah sebenarnya), misal /folder/subfolder/configFile.dat TO configFile.dat.orig
Bentuk perintah ini menambahkan ekstensi file (tidak mengganti ekstensi asli)
Dijelaskan: "{, .orig}" berarti ganti (tidak ada) di akhir nama file dengan (sesuatu) ".orig"
ATAU untuk menghapus ekstensi file (membalikkan ganti nama)
Catatan: Masih pada topik untuk "Cara tercepat untuk mengubah nama file tanpa mengetik ulang jalur dir"
sumber
Iya. Jika Anda menggunakan
bash
, Anda melakukannyasudo pushd ~/folder/subfolder/ && sudo mv ./file.txt ./file.sh && popd
.Yang sebenarnya lebih besar dan mungkin gagal jika Anda kehilangan izin akses ke direktori asli ketika Anda melakukannya
popd
.sumber
pushd
dan dipopd
sini? Bagaimana ini lebih baik daripadacd ~/folder/subfolder/ && sudo mv file.txt file.sh
?pushd
popd
menggunakancd
dan kembali dengancd -
.popd
lebih baik daripadacd ../../
, jika tersedia.(cd /path/to/there && mv x y)
kemudian (dengan subkulit)sudo
sebelumnyapushd
. Jadi perintah penuh seharusnyapushd ...dir && sudo mv old new && popd
. Sebagai alternatif, orang dapat melakukannya(cd ...dir; sudo mv old new)
karena menjalankan subshell akan menangani perubahan direktori secara otomatis.