Yaptığım aptalca bir hata yüzünden ses koleksiyonumun küçük bir bölümünü kaybettim. :-(
GLADLY Oldukça yeni bir yedeğim vardı, ama yine de rahatsız ediciydi.Senin dışında gerçekten, yaramazlık yapan diğer suçlu mv
, aşağıdaki gibi görünecekti:
Ses dosyalarının belirli bir şeması vardı:
ARTIST - Some Title YY.mp3
YY
2 basamaklı yıl belirtimi nerede .
mkdir 90<invisible control character>
(Şimdiye kadar, aslında görünmez olan bir üçüncü fazlalık karakter yazdığımı bilmiyordum ...!)
Hepsi bir dizinde olmak yerine, 1990'ların tüm müziklerinin tek bir dizinde olmasını istedim. Ben de şöyle yazdım:
find . -name '* 9?.mp3' -exec mv {} 90 \;
Ne olduğu hakkında fikir edinmek o kadar zor değil ha? : ->
(felaket) sonucu, '90 bir şey ' denilen boş bir dizin (bir şey "görünmez" kontrol karakteri) ve n kez yazılan '90' adlı tek bir dosyaydı .
TÜM DOSYALAR GİTMİŞTİR. : - (((açıkçası)
Keşke , hedef "dosya" imzasının (* NIX: Her şey bir dosyadır ) üzerine bir (örneğin ) ile başlayıp başlamadığını zamanında kontrolmv
ederdi . Ve elbette, hedefin var olup olmadığı . Sadece yukarıda belirtilen senaryo, bir varyantı vardır unuttum için ilk dizindeki. (ama elbette, orada olduğunu varsaydınız ...)d------
drwxr-xr-x
mkdir
Başkent W ile başlayan evcil hayvan nefret işletim sistemimiz bile bunu yapıyor . İsterseniz , hedef türünü (dosya? Dizini?) Belirtmeniz bile istenir .
Bu nedenle, merak ediyorum * NIXers'ın mv
sadece bu tür istenmeyen sürprizlerden kaçınmak için kendimize bir " scriptlet" yazmak zorunda olup olmadığımızı merak ediyorum .
mv
burada sorun değil, teknik olarak, bir dizi dosyayı taşıdığınızı bilmiyor. mv
Her dosya için bir kez çalıştırıyorsunuz . İşte böyle find -exec ;
çalışır. Eğer kullanılmış olsaydı find -exec +
(bazı yorumlar gibi) mv
olur birden fazla argüman var en kısa sürede çığlık.
mv
dosya için çalıştırma ilk bakışta biraz daha az düşünülmüş gibi görünse de, kaynak dosyalar çeşitli alt dizinler arasında dağıldıktan sonra (daha önce de söylediğim gibi) tek aklı başında çözüm olacaktır. Test durumumda, kaynak dosyaların hepsi tek bir dizinde olduğu, bunun gerçek test durumum olduğu anlamına gelmez . Aslında bu sadece bir basitleştirme, çünkü bunu daha sonra kendi başıma kolayca ayrıntılandırabilirim. Ayrıca, azaltılmış uzunlukları nedeniyle soruları okumak daha az zaman alır. :)
mv
varış yerinin var olmasını isteyesiniz ki? mv oldfile newfile
bir dosyayı yeniden adlandırmanın yoludur ve newfile
zaten var olup bir dizin olmasını beklemek saçmadır .
.mp3
adıyla orada olmalı90
, yedeklemeniz olmayan biri olabilir.