Linux terminalinde dosyaları taşımak ve yeniden adlandırmak hızlı ve zahmetsizdir, ancak önce bunu nasıl yapacağınızı anlamanız gerekir. İster makinenin başında oturun, ister SSH ile uzaktan bağlanın, bunlar dosyaları makinenizde hareket ettirecek komutlardır.
Bu nasıl yapılır’da, aşağıdakilerin temellerini öğreneceğiz: mv, dosyaları hareket ettiren ve yeniden adlandıran bir komut. Ayrıca bu komut için birkaç gelişmiş argüman, kullanımını artıracak ve hayatımızı kolaylaştıracak argümanlar öğreneceğiz.
Bu komutlar çoğu Linux makinesinde çalışacaktır. Test bilgisayarımız Kubuntu 21.10’u çalıştırdı, ancak bu nasıl yapılır’ı bir Ahududu Pi. Tüm nasıl yapılır, Terminal aracılığıyla gerçekleştirilir.
Tek bir dosyayı yeniden adlandırın
Yeniden adlandıracağımız tek bir dosyayla basit bir şekilde başlayalım. Komut sözdizimi aşağıdaki gibi yapılandırılmıştır.
mv <original name> <new name>
1. file1.txt adlı yeni bir dosya oluşturun.
$ touch file1.txt
2. file1.txt dosyasını yenifile1.txt olarak yeniden adlandırın. mv komutu, aynı dizindeki dosyalarda veya başka konumlardaki dosyalarda kullanılabilir.
$ mv file1.txt newfile1.txt
3. Yeni dosyayı görmek için dizinin içeriğini listeleyin. Şimdi newfile1.txt dosyasını görmelisiniz.
$ ls
Dosya taşıma
mv komutunun birincil kullanımı dosyaları taşımaktır ve sözdizimi yeniden adlandırmayla aynıdır. Bir kaynağımız ve bir hedefimiz var.
Bir dosyayı bir alt dizine taşıyalım.
1. MoveFilesHere adlı yeni bir dizin oluşturun.
$ mkdir MoveFilesHere
2. Dokunma komutunu kullanarak yeni bir boş dosya oluşturun. Dokunma, herhangi bir dosya türünü yapmak için kullanılabilir, ancak içinde doğru veri bulunana kadar, gerçekten sadece boş bir kabuktur.
$ touch blankfile.txt
3. Dosyayı MoveFilesHere alt dizinine taşımak için mv komutunu kullanın. Kaynak, boş dosya.txt ve ardından bir dizin olabilecek hedefi (burada olduğu gibi) belirliyoruz veya hedef konumu ve istenen dosya adını geçerek dosyayı yeni bir adla yeni bir dizine taşıyabiliriz.
$ mv blankfile.txt MoveFilesHere/
Bu, MoveFilesHere dizininin boş dosya.txt dosyasının bulunduğu dizinin hemen altında olduğunu varsayar. Dosyanızı farklı bir düzeydeki bir dizine taşıyorsanız tam yolu belirtmeniz gerekebilir (ör. /home/pi/scripts) . Ayrıca kullanarak bir dosyayı üst dizinine taşıyabilirsiniz. ../ hedef klasör olarak.
Dosyanın başarıyla taşınıp taşınmadığını kontrol etmek için ls komutunu kullanın. Burada içine bakılacak dizin olan ekstra parametreye ls (list) komutunu geçiyoruz.
$ ls MoveFilesHere/
Bir dosyayı taşımak ve adını değiştirmek isteseydik hedefi geçer ve istenen dosya adını verirdik. Bu nedenle, yukarıdaki örneği boşfile.txt dosyasını MoveFilesHere içine taşımak ve onu namechanged.txt olarak yeniden adlandırmak için değiştirerek aşağıdaki komutu kullanırdık.
$ mv blankfile.txt MoveFilesHere/namechanged.txt
Linux’ta Bir Toplu Dosya Nasıl Yeniden Adlandırılır
Aynı anda birçok dosyayı yeniden adlandırmamız gereken bir zaman gelecek. Toplu yeniden adlandırma, mv komutu kullanılarak gerçekleştirilir, ancak yeniden adlandırmak istediğimiz dosyaları yinelemek için tek satırlık bir Bash betiği kullanırız.
1. Denemek için bir toplu dosya oluşturun. Bu komut, a’dan z.txt’ye 26 dosya oluşturur.
$ touch a..z.txt
2. Tüm dosyaları .txt’den .log’a yeniden adlandırın. Bir değişken (f) oluşturan ve tüm txt dosyaları (*.txt) üzerinde yinelenen bir for döngüsü kullanırız ve değişkenin değerini ($f, değişkeni nasıl adlandırırız), daha sonra yeniden adlandırılan dosya adıyla değiştiririz. .txt’den .log’a (f değişkeninde saklanan dosya adı için bir kalıp eşleştirme operatörü olarak (f%.txt} kullanarak). Komutun sonunda, for döngüsünün sonunu belirtmek için “done” kullanırız. Kodun “–” kısmı, yeniden adlandırılacak dosyayı seçen for döngüsünün ilk bölümünün nerede bittiğini ve dosyayı yeniden adlandıran ikinci bölümün nerede başladığını gösterir.
$ for f in *.txt; do mv -- "$f" "$f%.txt.log"; done
Linux MV Komutunu Keşfetmek
mv komutunun, komutu kullanırken iletebileceğimiz bir dizi faydalı argümanı (parametresi) vardır. İşte birkaç örnek.
Dosyaları taşırken etkileşimli bir komut istemine ihtiyacınız varsa, diyelim ki yeni dizinde özdeş bir dosya olabilir, -i argümanı bir çakışma bulunduğunda bir karar isteyecektir.
$ mv -i blankfile.txt MoveFilesHere
Etkileşimli bir istemin tersi, komutu dosyaların üzerine yazmaya zorladığımız yerdir. Açıkça bu komutu çağırmadan önce hedef konumu kontrol edin.
$ mv -f blankfile.txt MoveFilesHere
Ya dosyalarımızı taşımak istiyorsak, ancak mevcut dosyaların üzerine yazmak istemiyorsak? Bunun için –no-clobber’a (-n) ihtiyacımız var. Bu komut, dosyaları mutlu bir şekilde kopyalar, ancak hedef dizindeki mevcut dosyaları atlar.
$ mv -n blankfile.txt MoveFilesHere
Yalnızca güncellenen dosyaları taşımanız mı gerekiyor? -u argümanı, kaynak dosyanın (kopyalamak istediğimiz dosyanın) hedef dosyadan daha yeni olup olmadığını kontrol edecektir. Günlük dosyalarını taşımak ve belgelerin artımlı yedeklerini almak için kullanışlıdır.
$ mv -u blankfile.txt MoveFilesHere
Son olarak, hangi dosyaların taşındığını görmek istiyorsak, dosyaların adlarını kopyalanırken görüntülemek için -v (ayrıntılı) argümanını kullanabiliriz. Hızlı hata ayıklama ve veri merkezinde meşgul görünmek için kullanışlıdır.
$ mv -v blankfile.txt MoveFilesHere