Ayracı genişleme sözdizimi virgül kabul eder; ancak virgülden sonra boşluk kabul etmez. Birçok programlama dilinde, virgüllerden sonraki boşluklar yaygındır, ancak burada değildir. Bash'te alıntılanmamış bir alanın bulunması, küme ayracı genişlemesinin yapılmasını önler.
Alanı kaldırın, işe yarayacak:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Gerekli olmasa da, sondaki .bin
parantezleri parantezlerin dışına taşıyabileceğinizi unutmayın :
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Eğer ayracı genişleme etkisini test etmek istiyorsanız, kullanabileceğiniz echo
veya printf '%s '
veya printf
bunu yapmak için, ne olursa olsun tercih biçim dizesi ile. (Şahsen ben sadece Bash'deyken bunun echo
için kullanıyorum , çünkü Bash'ın echo
yerleşimi varsayılan olarak kaçış dizilerini genişletmez ve bu nedenle hangi komutun gerçekten çalışacağını kontrol etmek için oldukça uygundur.) Örneğin:
ek@Io:~$ echo cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
cp /home/ek/some/dir/my-file-to-rename.bin /home/ek/some/dir/new-name-of-file.bin