Bir dosya / klasör yapısını oluşturma ve o kadar sıkıştırma?

1 Cevap

Ben görüntü dosyaları bir dizin var ve ben, bunları yeniden adlandırın iç içe dizinleri bir yapı oluşturmak, ve sonra dizin hiyerarşisi içinde, belirli bir yerde her bir görüntüyü eklemek olacak bir php komut dosyası veya kabuk komut dosyası gerekir. İdeal Ben sadece her dosya için bir üst dizin ve her bir dizin için bir üst dizini belirtmek istiyorum ve bunu inşa edecek. Ve sonunda, ben her şeyi sıkıştırmak için komut dosyası gerekir.

Orada benim için tüm bunları yapacağız varolan php class değil muhtemelen, ama herkes bu mantık çok idare edecek bir php sınıfı veya başka bir komut mevcut online bilen varsa harika olur.

1 Cevap

Ben onun değil PHP biliyorum, ama böyle bir şey incelemek isteyebilirsiniz:

dosyaları yeniden adlandırmak için bir kabuk (sizin lehçesi değişebilir, ama adam sayfaları çok yararlı olabilir).

foreach img (/path/to/directory/*.jpg)
  set newimg= `echo $img | sed 's,path/to/directory/(.+)\.jpg,new/path/$1newname.jpg/,'`
  cp img newimg
end

Belirli bir dizindeki tüm dosyaları tek bir yerde, işe yarayabilecek yukarıdaki gibi bir şey için gidiyoruz. Esasen bir. Jpg (ya da herneyse) uzantısı olan dosyaların isimlerini alma hedef dizininde döngüler. Sonra kendi yolunu ve yeni dizin yolu subs ve orijinal dosya değişikliği için bazı değişiklik de dahil olmak üzere bu isimler alır. Tüm bu yolu ayracı kaçan bir acıdır çünkü ikamesi ayırıcı için , kullandım. Son olarak, bu kopyalar yeni konuma eski dosya.

Dizin ihtiyaçları muhtemelen kodlanmış yol için izin verdiğinden daha fazla karmaşık olduğundan, sizin filepath / dosya ayrıştırmak ve hedef yolu ne olması gerektiğini belirlemek için bir satır içerebilir; ve ikame kullanan.

Tek seferde bir dizin ağacı oluşturmak için bir pasajı bulunabilir here.

Ayrıca bu kadar istediğiniz gibi bir dizin yapısı inebilir çünkü find foreach daha bunun için daha uygun olduğunu karar verebilir.