Adı tire ile başlayan bir dosyayı yeniden adlandıramıyor


37

Bir dosyayı adının başında kısa çizgi ile yeniden adlandırmaya çalışıyorum ve her ikisi de:

mv -example-file-name example-file-name

ve bu:

mv '-example-file-name' example-file-name

sonuçlanmak:

mv: invalid option -- 'e'

1
Dosyanın göreceli yolunu (./tmp/-example), tam yolu (/ home / a / tmp / -example) kullanın ya da mv'ye seçenekleri belirtmediğinizi - ve ardından dosya olduğunu söyleyin isimler.
Ярослав Рахматуллин

Kimsenin harikası olması durumunda: mv *example-file-name example-file-nameaynı problemi vardır, çünkü daha önce dosya adı genişlemesi (AKA globbing) olur mv.
Walter Tross

Yanıtlar:


53

GNU / Linux komutlarının çoğu --, seçeneklerin sonunu belirtme seçeneğine izin verir, böylece önceden -eklenmiş sözcükler seçenek olarak değerlendirilmez.

  mv -- -example-file-name example-file-name

Küçük bir test

$ touch -- -example
$ ls -l -- *ample
-rw-r--r-- 1 rgb rgb 0 Nov 25 09:57 -example
$ mv -- -example example
$

Bu da aynı sorunu çözer rename. (en azından rename [options] <expression> <replacement> <file>...hangisi çalışırsa , hangisi öyleyse, hangisi çalışırsa )
underscore_d

Kahretsin, BSD / Mac OS X'de mvbu yok :(
Sridhar Sarnobat

18

RedGrittyBrick'in cevabı çok iyi. Başka bir seçenek:

mv ./-example-file-name example-file-name

Küçük bir test:

$ touch ./-example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./-example
$ mv ./-example example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./example

çok güzel bir geçici çözüm, bu benim başıma asla gelmedi. Ve kabul edilen cevabın aksine, bu BSD / Mac OS X üzerinde çalışacak
Sridhar Sarnobat

Bu biraz daha akılda kalıcı --.
Corni

-1

Bunu kullanabilirsiniz:

rename -- "s/\-//g" *

dosya adınız varsa tüm dosyayı yeniden adlandırabilir :):

-ng--sh-ay-01[------------]-FLV

kod çalıştırdıktan sonra dosya adınız:

ngshay01[]FLV

1
Diğer yaklaşımların (RedGrittyBrick ve gniourf_gniourf tarafından yazılanlardan biri) diğer birkaç komutla çalışması daha olasıdır.
TOOGAM

-1

Bu numara benim için umutsuzluk zamanlarında işe yarıyor. YMMV

rename \- '' *

Tanımlamak için yeniden adlandırmak için kısa çizgiden kaçmanız gerekir. Neden yeniden adlandırma tek tırnaklara saygı duymuyor ya da bir çeşit geçersiz kılma teklifinde bulunmuyor.

Bu, yeniden adlandırma kullanarak önde gelen bir kısa çizgiyi güvenilir bir şekilde işleyen, gördüğüm tek yöntemdir. Mv kullanımına ilişkin diğer yayınlara katılıyorum, ancak herhangi bir nedenle mv kullanamıyorsanız, bu işe yarıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.