Ada sejumlah trik (saya pikir ada duplikat), tetapi untuk ini saya cenderung melakukannya
cp /etc/prog/dir1/myconfig.yml{,.bak}
yang akan diperluas ke perintah Anda.
Ini dikenal sebagai ekspansi brace . Dalam bentuk yang digunakan di sini, {}
ekspresi menentukan sejumlah string yang dipisahkan oleh koma. Ini "memperluas" seluruh /etc/prog/dir1/myconfig.yml{,.bak}
ekspresi, mengganti {}
bagian dengan masing-masing string pada gilirannya: string kosong, memberi /etc/prog/dir1/myconfig.yml
, dan kemudian .bak
, memberi /etc/prog/dir1/myconfig.yml.bak
. Hasilnya adalah
cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak
Ekspresi ini dapat disarangkan:
echo a{b,c,d{e,f,g}}
menghasilkan
ab ac ade adf adg
Ada varian menggunakan angka untuk menghasilkan urutan:
echo {1..10}
menghasilkan
1 2 3 4 5 6 7 8 9 10
dan Anda juga dapat menentukan langkah:
echo {0..10..5}
menghasilkan
0 5 10
bash-fu
:)