/etc
Dizinin içindeydim ve komutu yazdım
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
Bu dosyayı dizinin openvpn
bir alt dizini olan dizine taşıyacağını düşündüm /etc
. Ancak, olan bu değildi. Onaylayabildiğim tek şey, komutun yürütüldüğü.
/etc
Dizinin içindeydim ve komutu yazdım
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
Bu dosyayı dizinin openvpn
bir alt dizini olan dizine taşıyacağını düşündüm /etc
. Ancak, olan bu değildi. Onaylayabildiğim tek şey, komutun yürütüldüğü.
Yanıtlar:
Bu ada sahip bir dizin yoksa, dosyayı openvpn
kök dizininizde yeniden adlandırdınız /
. Bunu geri almak için şunu çalıştırın:
sudo mv /openvpn /etc/MyFile.conf
Dizin mevcutsa, dosyayı içine taşıdınız, tersine çevirme şu şekildedir:
sudo mv /openvpn/MyFile.conf /etc/
Geçerli dizinin varolan bir alt dizinine taşımak için, bunlardan herhangi birini çalıştırabilirsiniz; bunlar göreli yolları kullanır :
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
geçerli dizine bir bağlantı olduğundan, ./
yolun başında “bu dizinde” anlamına gelir. Sondaki eğik çizgi openvpn
, bir dizin olduğu ve dosyayı içine taşımak istediğiniz anlamına gelir . Bunu girmezseniz, dosya edilecektir taşındı bu isimde bir dizin başka dosya olacak, varsa onun içine değiştirildi için openvpn
. Bir ile /
sonunda, mv
dizin eksik ve eğer sizi uyarır değil adlandırmak o Yeniden adlandırmak istemiyorsanız güvenli bir yolu böylece.
Yolunuz ile başlıyorsa /
diğer taraftan bir var mutlak daima kök dizinine göre değil, yol ne olursa olsun bulunulan dizinin /
. Hem dosya hem de hedef için mutlak yollar kullanmak komutunuz şöyle görünecektir:
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
Kullanmalısın
me@mylaptop:/etc$ sudo mv MyFile.conf openvpn/
MyFile.conf
dosyayı openvpn
alt dizinine taşımak için /etc/
.
Diğer yandan
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
bunun yerine dosyayı /
dizine taşıyacaktır openvpn
(yani, yeniden adlandır openvpn
) ( /openvpn
dizinin mevcut olmadığı varsayılarak ).
Bir dosyayı taşıdığınızda, işletim sistemine içine koymak istediğiniz dizini veya vermek istediğiniz yeni yolu bildirirsiniz.
İşletim sistemine "/ openvpn" dediniz. Bu tam olarak bunu yapacaktır - / openvpn'in var olup olmadığını kontrol edin (kök dizinde bulunan "openvpn" adlı bir nesne anlamına gelir) ve bir dizin olup olmadığını ve eğer varsa dosyanızı içine taşıyın veya / openvpn bir dosyaysa veya mevcut değilse, dosyanızı şimdi / openvpn olarak erişilebilecek şekilde yeniden adlandırın ve taşıyın.
Sen ne yapmak istediği taşımak oldu geçerli dizinde bulunan olmaktır bir dizin "openvpn", içinde , ( "/" nı lider budur) dosya sistemi kök dizininde olanı değil. Bu yüzden , mutlak "/ openvpn" yoluna değil, move komutundaki o dizine işaret etmek zorundaydınız . Bunlardan herhangi biri çalışacaktır:
mv MyFile.conf openvpn
- bu "openvpn" için şu anki dizinime bakmv MyFile.conf /etc/openvpn
- mutlak yol / etc / openvpn arayınmv MyFile.conf openvpn/
- şu anki dizinime bak, openvpn adlı bir dizin içinmv MyFile.conf ./openvpn
- "mevcut yön" ü daha belirgin hale getirirKısa versiyon - büyük olasılıkla "mevcut dizinim", "/ openvpn", "mevcut dizinimdeki" openvpn "anlamına gelir. Ancak önde gelen "/" yalnızca "kök dizin" anlamına gelir, bu nedenle "/ openvpn", "kök dizinde openvpn" anlamına gelir. İhtiyacınız olan şey "openvpn" veya "openvpn /" kullanmaktı, yani " şu anki dizinimde openvpn " kullanmaktı.
İle başlayan herhangi bir yol /
göreceli değil, mutlak bir yoldur.
Tüm yollar her zaman geçerli dizine göreli olsaydı cd /etc
, ilk etapta nasıl olurdu ? Bunun cd ../../../../../etc
yeterli seviyelerde olduğunu ve..
cd ..
zorundasınız ve kök dizine gelene kadar yapmaya devam edersiniz.
Veya mutlak yolları ifade etmek için başka bir sözdizimine ihtiyacınız olacaktır. Ancak Unix /
, sürecin mevcut çalışma dizinine göre başka bir şey olan mutlak anlam üzerine karar verdi . Yanimv MyFile.txt openvpn
işe yarar.
Ve hayır, varolan dosyalardan mutlak ve göreceli çıkarım yapmak iyi olmazdı. mkdir
Sistem çağrılarının yolları farklı şekilde işlemesini chdir
veya rename
sistem çağrılarını istemesini istemeyiz ve mv
programı yapmak, sadece arasındaki tutarsızlığa yer açar.mv
bir çıktı dosya adı alan diğer programlar .
mv
rename()
hedef zaten bir dizin olduğunda, kaynak dosya adını bu hedef dizine ekler ve yeniden dener. Ancak, basit bir uygulama stratejisinin, rename()
başarısız olan ilk sistem çağrısına dayandığına dikkat edin.EEXIST
veyaEISDIR
. Bu nedenle, dosya sistemini kontrol etmeden önce bir yolun göreceli mi yoksa mutlak mı olduğunu bilmeliyiz.
(Erken Unix, bir dizinin mevcut olup olmadığını fazladan kontrol etmek, önbelleğe alınmamışsa fazladan G / Ç veya dizin önbelleğe alma üzerinde daha fazla baskı anlamına gelebilecek yavaş bilgisayarlarda çalışıyordu. tarihsel verimlilik argümanlarına başvurmadan sistemin çalışması için makul bir yol değildi.)
Diğer cevapları tamamlamak için:
mv file.txt /location
Windows ile aynıdır
mv file.txt c:\location
Dosya sistemi linux uygun olarak düşünülmektedir dosya sistemi hiyerarşisi standardına veya FHS kısaca. bir dosyanın niteliğine ve içeriğine bağlı olarak nereye yerleştirilmesi gerektiğini bilmenize yardımcı olur.
İlk klasör ( c:
Windows'takine eşdeğerdir ) /
.
sudo mv /openvpn/MyFile.conf /etc/
komutu deneyin . Olası senaryoda dizin mevcut değildi, sadece bir hata (muhtemelen "Dizin değil") verir ve dosya sistemine dokunmaz. Sonra, sadece yapabilirsinizsudo mv /openvpn /etc/MyFile.conf
.