Linux komut satırında (çok büyük) bir .txt
dosya kümesini bir dizinden (ve alt dizinlerinden) diğerine kopyalamak istiyorum .
Sağlam kalabilmek için dizin yapısına ihtiyacım var ve bitenler dışındaki dosyaları yoksaymam gerekiyor .txt
.
Linux komut satırında (çok büyük) bir .txt
dosya kümesini bir dizinden (ve alt dizinlerinden) diğerine kopyalamak istiyorum .
Sağlam kalabilmek için dizin yapısına ihtiyacım var ve bitenler dışındaki dosyaları yoksaymam gerekiyor .txt
.
Yanıtlar:
Başka bir yaklaşım
find . -name '*.txt' -exec rsync -R {} path/to/dext \;
find . -iname '*.txt' -exec rsync -Rptgon {} path/to/dext \;
duyarsız bir eşleşme yapardım, sahiplik ve izinlerin korunmasını yapardım.
peki ya ilk kopyalamayı bitsin
cp -r /old/folder /new/folder
sonra yeni klasöre gidin ve çalıştırın
find . -type f ! -iname "*.txt" -delete
ya da sadece
cp -r /old/folder /new/folder && find . -type f ! -iname "*.txt" -delete
Düzenleme: Tamam, filtreleyen bir komut istiyorum (Bunu sistemde cpio
komut olmadığı için test etmedim !). İşte bulduğum yer: http://www.gnu.org/software/findutils/manual/html_mono/find.html#Copying-A-Subset-of-Files
find . -name "*.txt" -print0 |
cpio -pmd0 /dest-dir
Lütfen önce bunu test edin, çünkü henüz denemedim. Biri doğrularsa, harika olurdu.
0
in -pmd0
ve eklemek -print0
sonuna find
(hemen önce komuta |
).
MacOS'ta da aynı şeyi yapmaya çalışıyordum, ancak seçeneklerin hiçbiri benim için işe yaramadı. Keşfetene kadar ditto
.
Birçok .wav dosyasını kopyalamak zorunda kaldım ve Video dosyalarını atlatmasını sağladım ... İşte burada buldum:
find . -type f -iname "*.wav" -ls -exec ditto {} /destination/folder/{} \;
find .
- Geçerli klasördeki bulmayı çalıştırır. cd /source/folder
başlamadan önce emin ol
-type f
- Yalnızca dosyaları aramayı belirtir
-iname "*.wav"
- Bu, büyük / küçük harfe duyarsız * .wav aramasını söyler-ls
- Bu, üzerinde çalıştığı dosyayı gösterir. Aksi takdirde hiçbir şey göstermez.-exec ditto {} /destination/folder/{} \;
- Aynı dizin ağacına sahip dosyaları kopyalayıp oluşturma işini yapar.