Vi düzenleyicisi kullanarak sources.list düzenlemeye çalışıyorum ama dosyayı kaydederken aşağıdaki hatayı alıyorum:
/etc/apt/sources.list" E212: Can't open file for writing
Vi düzenleyicisi kullanarak sources.list düzenlemeye çalışıyorum ama dosyayı kaydederken aşağıdaki hatayı alıyorum:
/etc/apt/sources.list" E212: Can't open file for writing
Yanıtlar:
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
Vim yerleşik bir yardım sistemine sahiptir. Az önce söylediklerini alıntıladım :h E212
.
Dosyayı süper kullanıcı olarak düzenlemek isteyebilirsiniz sudo vim FILE
. Veya mevcut vim oturumunuzdan ayrılmak istemiyorsanız (ve şimdi uygun sudo haklarına sahipseniz), aşağıdakileri yapabilirsiniz:
:w !sudo tee % > /dev/null
Hangi dosyayı kaydeder.
HTH
Tüm değişikliklerinizi kaybetmek ve sudo ile yeniden açmak yerine. Bu değişikliklerin nasıl kaydedileceğiyle ilgili bu demoya bakın:
Tek seferlik Kurulum demosu, daha düşük bir kullanıcı için kök sahipli salt okunur dosya oluşturmak için:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Önce dosyayı normal kullanıcı olarak açın:
vi temp.txt
Sonra dosyada bazı değişiklikler yapın, sadece okumaya karşı sizi uyarır. Bu komutu kullanın.
:w !chmod 777 %
Sonra dosyayı yazın:
:wq!
İzinler genişletilir ve dosya kaydedilir. Bir kök dosyayı daha az kullanıcı olarak düzenlediğiniz için ünlem işareti gerekir.
Bu komutun ne yaptığının açıklaması:
: W, dosyayı yazmak anlamına gelir. Patlama, kabuk olarak yorumlamaya başlamak anlamına gelir. chmod değişiklik izinleri, 777 her yerde tam izinler anlamına gelir. Yüzde, geçerli dosya adı anlamına gelir.
Değişikliği uygular. Ve yeniden yüklemek isteyip istemediğinizi sorar. "Tamam" için "O" tuşuna basın. Yeniden yüklemeyin yoksa değişikliklerinizi kaybedersiniz.
Benim için oldukça basit bir çözüm vardı. Var olmayan bir klasörde dosya düzenlemeye / oluşturmaya çalışıyordum . Zaten klasördeyken içinde bir dosya düzenlemeye / oluşturmaya çalışıyordum .
yani pwd folder/file
ve yazıyordu
sudo vim folder/file
ve daha doğrusu klasördeki klasörü arıyordu ve kaydedemedi.
Ya da belki de salt okunur bir fs
Seviye 2'de Zsolt'a başvurdum, girdim:
:w !sudo tee % > /dev/null
ve sonra benim durumumda, ben hala dosyayı değiştiremiyorum, bu yüzden "!" eklemek istedi. bu yüzden girdim
:q!
o zaman işe yarıyor
benim için vim çalıştırmadan önce dosya sistemini Salt Okunur olarak değiştirmeye çalıştım:
bash-3.2# mount -o remount rw /
kullanıcıyı kökten değiştir
sodu su -
vs'ye göz at
vi sudoers
kullanıcı ayrıcalık bölümünde kök kullanıcıyı arayın. onu alacaksın
root ALL=(ALL:ALL) ALL
kullanıcı adınız için aynı girişi yapın. kullanıcı adınız 'kullanıcım' ise ekleyin
myuser ALL=(ALL:ALL) ALL
gibi görünecek
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
Onu kurtar. kök kullanıcıyı kullanıcı olarak değiştirin. şimdi sudoers sorununu yaşadığınız yerde deneyin
Erişmekte olduğunuz dosyanın aynı dizinde zaten bir takas kopyası (veya takas sürümü) olması mümkündür.
Bu nedenle önce gizli bir dosyanın var olup olmadığını görün.
Örneğin, aşağıdaki dosya türleri için bakın
.system.conf.swp
Komutunu kullanarak
ls -a
Ve sonra şunu kullanarak silin ...
rm .system.conf.swp
Genellikle, süper kullanıcı ayrıcalıklarını kullanmaya başlamanızı öneririm ...
sudo su
git rm
Bir dizindeki bir dosyada kullandığımda bu hatayı aldım .
~ / GitRepo / code / newFeature gibi bir şeydeydim
NewFeature uygulamasında yalnızca bir dosya vardı. git rm
Bu dosya üzerinde bir yaptım sonra vi kullanarak myNewFile yeni bir dosya oluşturmaya çalıştım.
Ubuntu bana hala newFeature dizininde olduğunu gösterdi, ancak aslında git rm
tüm dizini kaldırmıştı.
Vi'dan çıkıp bir dizine çıkıp newFeature dizinini yeniden oluşturmak zorunda kaldım.