GNU/Linux >> Belajar Linux >  >> Linux

Mv Menimpa File Hanya-Baca Tanpa Diminta?

Manual GNU Coreutils untuk mv mengatakan:

Jika file tujuan ada tetapi biasanya tidak dapat ditulis, input standar
adalah terminal, dan opsi -f atau –force tidak diberikan, mv
meminta pengguna untuk mengganti file. (Anda mungkin memiliki
file tersebut, atau memiliki izin menulis pada direktorinya.) Jika responsnya
tidak setuju, file tersebut akan dilewati.

Namun, versi mv Saya menggunakan (GNU coreutils 8.21 di Ubuntu 14.04.3 LTS) menunjukkan perilaku yang tidak terduga:

$ which mv
/bin/mv
$ ls -l
total 0
$ echo foo > 1; chmod -w 1; cp 1 2; ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 1
-r-x------ 1 me me 4 2
$ echo bar > 2
-bash: 2: Permission denied
$ mv 1 2
$ ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 2

Berdasarkan kutipan manual yang dikutip di atas, saya mengharapkan mv 1 2 perintah untuk meminta pengguna sebelum menimpa file 2 .

Apakah ada bug di mv versi saya? , atau bug dalam pemahaman saya? Jika yang terakhir, lalu apa yang lakukan maksud manual?

Jawaban yang Diterima:

Ternyata, server menggunakan sistem file jenis "cifs" (mungkin Common Internet File System, alias CIFS). Ini ditemukan dengan menjalankan perintah df -T .

CIFS tampaknya menunjukkan perilaku yang tidak biasa sehubungan dengan izin.

Menjalankan perintah yang sama pada mesin dengan sistem file ext4 dan versi terbaru Coreutils menghasilkan:

$ mv 1 2
mv: replace ‘2’, overriding mode 0444 (r--r--r--)?

seperti yang diharapkan.


Linux
  1. Linux – Alasan Tidak Jelas Sebuah File Hanya-Baca?

  2. Editor Teks yang Memperbarui File Tanpa Diminta?

  3. grep tanpa menunjukkan path/file:line

  1. Unrar semua file dalam direktori tanpa diminta

  2. Cara mengeksekusi file tanpa ekstensi .sh di shell

  3. Bagaimana cara menghapus file tanpa menggunakan rm?

  1. Memindahkan file di Linux tanpa mv

  2. Mengapa Rm Dapat Menghapus File Read-only?

  3. Echo To File Descriptor Menimpa File?